GROUP-BY 表达式必须至少包含一个不是外部引用的列



我有这个查询:

SELECT
SolutionName    -- Solution_NAM
from  Table_View
Group By 1

Table_View当然是风景。我收到此错误消息:

每个 GROUP BY 表达式必须至少包含一个不是外部引用的列。

你能帮我解决这个问题吗?它在 MSS SQL Server 2008<</p>

div class="one_answers">

你不能给 Group by 1

尝试

SELECT
SolutionName    -- Solution_NAM
from  Table_View
Group By SolutionName

Martin关于GROUP BY的陈述是正确的,尽管在各种版本的SQL中,您>可以<绝对使用列序号而不是ORDER>

但是明智的做法是不在 ORDER BY 语句中使用列序号,即使它们确实有效。为什么?如果查询是存储过程的一部分,并且通过向原始表(或视图)添加列来更改表架构,则无法保证更改将保持原始列顺序。这意味着您可能按意外且无意义的列进行排序,然后中断您的应用程序。

最好每次都使用列名而不是序号(尽管像 count(*),但如果它是供你自己使用的临时查询,永远不会在生产中出现,请不要挂断它)。

最新更新