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