我有这个问题:
SELECT
SolutionName -- Solution_NAM
from Table_View
Group By 1
其中Table_View当然是一个视图。 我收到此错误消息:
每个GROUP BY表达式必须至少包含一个不是外部引用的列。
你可以帮我解决这个问题吗? 它在Ms SQL Server 2008中答案 0 :(得分:4)
你不能给1分组
试
SELECT
SolutionName -- Solution_NAM
from Table_View
Group By SolutionName
答案 1 :(得分:0)
Martin关于GROUP BY的陈述是正确的,尽管你>可以<在各种版本的SQL中,我肯定在ORDER BY中使用列序号而不是列名(我在想TSQL,它是大多数核心SQL语法中的ISO标准)。
但明智的做法是不要在ORDER BY语句中使用列序号,即使它们确实有效。为什么?如果查询是存储过程的一部分,并且通过向原始表(或视图)添加列来更改表模式,则无法保证更改将维护原始列排序。这意味着你可以通过一个无意义且无意义的列进行排序,这会破坏你的应用程序。
最好每次都使用列名而不是序数(尽管像count(*)一样,如果它是为了你自己的用途而特别查询它将永远不会看到它的亮点,不要挂断它在生产中。)