[英]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 BY
和ORDER BY
通过简单的SELECT
从表中,荷兰国际集团pacesetter_forecast
(前提是您的表,有正确的架构,将允许SELECT *
和GROUP
ING由单一的列名..但是这是另外一个不同的讨论这样的问题)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.