您的位置:首页 > 数据库

关于sql server中,建视图的语句中不能加order by的问题

2015-09-10 08:54 579 查看


关于sql server中,建视图的语句中不能加order by的问题

分类:
数据库 2004-08-16 21:20
1774人阅读 评论(0)
收藏
举报

sql serversql

今天写了个SQL语句

select * from (

select ... from A? union ?select ...from B order by B.xx

) as Tmp

SQL查询分析器中老是报错:The ORDER BY clause is invalid in views, inline functions, derived tables, and subqueries, unless TOP is also specified.

而单独执行select ... from A? union ?select ...from B order by B.xx语句时是可以的。

后来分析原因如下:

sql中建view是不能用order by字句的,即:

如果把该查询语句建成视图

? create view v_test

? as

? select * from sysobjects order by name

? 会提示出错:

The ORDER BY clause is invalid in views, inline functions, derived tables, and subqueries, unless TOP is also specified.

而在嵌套查询中,系统会自动为select ... from A? union ?select ...from B order by B.xx语句建一个view,里面有order by字句,当然会报错了,去掉order by后,运行成功!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: