繁体   English   中英

SQL Server 2008错误:视图中的ORDER BY子句无效

[英]SQL Server 2008 Error: The ORDER BY clause is invalid in views

我收到错误消息。

除非还指定了TOP或FOR XML,否则ORDER BY子句在视图,内联函数,派生表,子查询和公用表表达式中无效。

这是查询:

select * from
   (select * from pacesetter_forecast order by hectare DESC) t 
group by cluster

错误消息是正确的。 您无法对子查询的输出进行排序。 如果您不确定什么是子查询:

SELECT *
FROM (SELECT * FROM SomeOtherTable) T -- This is the subquery, a query within a query

从逻辑上讲,对子查询的结果进行排序没有多大意义。 通常,子查询的思想是获取查询结果并将其像表一样使用( JOIN对其进行查询, SELECT对其进行查询等)。 在人们查看输出之前,表中行在物理上存储在磁盘上的顺序通常无关紧要。

顺便说一句,在上面的示例中,实际上不需要子查询。 你可以做你GROUP BYORDER BY通过简单的SELECT从表中,荷兰国际集团pacesetter_forecast (前提是您的表,有正确的架构,将允许SELECT *GROUP ING由单一的列名..但是这是另外一个不同的讨论这样的问题)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM