如何在sql视图中排序

Erw*_*win 9 sql view sql-order-by

我已经创建了一个sql视图,我需要在4个字段上使用ORDER BY对select的结果进行排序,但是我收到的消息是ORDER BY不能在视图中使用,除非我使用TOP.有人可以解释为什么需要TOP,有人有一个解决方法在sql视图中进行排序吗?

谢谢.

Mla*_*dic 17

您不需要对视图进行排序.视图就像一个表,因此当您从中选择时对其进行排序:

select * from yourView order by yourColumns
Run Code Online (Sandbox Code Playgroud)


gbn*_*gbn 6

无法保证视图的输出将被订购

只有最外层的ORDER BY适用于结果集:不是任何内部的.因此,只有这个ORDER BY可以保证工作:

SELECT col1, col2, FROm MyView ORDER BY col2
Run Code Online (Sandbox Code Playgroud)

您可以将其添加到视图或派生表中,并强制" 中间实现 ",因为必须对结果进行排序.然而,对于SQL Server 2005及以上版本,你必须使用TOP 2000000000TOP 100 PERCENT(除了丹尼尔·瓦萨洛提到,HF!)

有人在某个时候使用与内部不同的顺序使用您的视图.