SQL。通过一个字段排序
-
25-09-2019 - |
题
我已经建立在SQL由3个表的简单视图。
通过右击并选择设计,在对象资源管理表中,我修改自定义视图。我刚添加sortby ASC中的一个字段。
在的问题是,更改不会反映在视图的outout。 保存视图,并选择后打开查看排序不输出显示。
那么,什么是怎么回事?
解决方案
从技术上讲,它是可能的烘烤排序成VIEW
但强烈气馁。相反,你应该申请排序,同时从像这样的视图中选择:
Select ...
From MyView
Order By SortByCol ASC
如果你真的想知道(但同样,我会强烈反对这一点),你可以使用TOP命令绕过视图排序的限制:
Select TOP 100 PERCENT * Col1, Col2....
From Table1
Order By SortByCol ASC
其他提示
看来:
有是在SQL Server 2000中的视图定义的SELECT子句限制,SQL 2005和SQL 2008 CREATE VIEW语句不能包含ORDER BY子句,除非有也是在SELECT的选择列表中的TOP子句声明。 ORDER BY子句仅用于确定由在视图定义TOP子句返回的行。 ORDER BY子句不保证排序结果当查询视图,除非ORDER BY也是在查询本身指定。
还有一个修复程序被应用的需求。在此之后,你应该使用前100%,以确保通过作品的顺序。
HTH
一般,视图无法进行排序。
(正如其他人所提到的,有一个黑客做到这一点,但因为你正在使用一个可视化查询设计器,而不是写在SQL视图定义,它可能难以实现该黑客。)
您实际上并没有“修改”你的看法,你只改变了SELECT语句EM使用选择的从的视图。排序设置没有保留在视图定义
当您关闭选项卡,EM不记得您的排序偏好这一观点,所以当你再次打开该视图,它可以以任意顺序SQL Server会出来。
不隶属于 StackOverflow