视图中order by 的使用

来源:互联网 发布:youtube下载视频软件 编辑:程序博客网 时间:2024/06/07 02:01

在视图定义中不能单独使用order by,top和order by或 order by 和for xml 可以一起组合出现在视图的定义中;

例如:

CREATE VIEW TT
AS 
SELECT * FROM  TEST
ORDER BY ID


这种定义会出现报错,原因为:TOP和FOR XML都是T-SQL的扩展,不是标准的SQL元素。TOP和ORDER BY以及ORDER BY和FOR XML是结果集规范的一部分,但是单独的ORDER BY并不是。如果实际中需要对视图中数据进行排序,可以在视图的外部查询中指定order by;

有人认为可以创建如下视图:

CREATE VIEW TT

AS 

SELECT TOP 100 PERCENT * FROM  TEST

ORDER BY ID

利用视图的这个漏洞定义一个非常可笑的视图,在2008 中进行测试查询视图返回的结果并没有排序;即使优化器不忽略ORDER BY 子句并返回排序的数据,也不应该依赖于这种方法 。


0 0
原创粉丝点击