我们遇到不允许在SQL Server视图定义使用ORDER BY子句的问题,应该如何处理呢?下面为您分析了该问题的原因,并提出了解决方法,希望对您能有所帮助。
SQL Server之所以不允许在视图定义中使用ORDER BY子句是为了遵守ANSI SQL-92标准。
因为对该标准的原理分析需要对结构化查询语言(SQL)的底层结构和它所基于的数学理论进行讨论,我们不能在这里对它进行充分的解释。但是,如果你需要在视图中指定ORDER BY子句,可以考虑使用以下方法:
Microsoft在SQL Server 7.0中引入的TOP结构在同ORDER BY子句结合使用时是非常有用的。只有在同TOP关键词结合使用时,SQL Server才支持在视图中使用ORDER BY子句。

注意:TOP关键词是SQL Server对ANSI SQL-92标准的扩展。
【编辑推荐】
SQL Server排序规则的应用
带您了解SQL Server标识列
SQL Server UPDATE语句的用法
SQL Server添加列及删除列
SQL SERVER TOC分页的实现方法
db2视图导入导出
db2look -d db -a -e 要调整顺序,表, 函数,视图,存储过程等
sql="select * from product where iSDEl=0 and statenum<>2 " 加了order by id desc就错了,怎么回事?
sql=select * from product where isdel=0 and statenum<>2 order by [id] desc加上括号试试看
在SQL中table与view的区别
table(表格)是一个完整的表,所有的数据都存放在这个表里面。 view(视图)可以是一个表、或表里面的部分内容。 有选择性的。 用到view的地方,一般都是一条sql语句,筛选出来的部分内容。
发表评论