我有这样的查询:GROUP-BY表达式必须包含至少一个列不是外部引用
SELECT
SolutionName -- Solution_NAM
from Table_View
Group By 1
其中Table_View是当然的图。 我得到这个错误信息:
每个GROUP BY表达式都必须包含至少一个不是外部引用的列。
你能帮我解决吗? It's内的MS SQL Server 2008
我有这样的查询:GROUP-BY表达式必须包含至少一个列不是外部引用
SELECT
SolutionName -- Solution_NAM
from Table_View
Group By 1
其中Table_View是当然的图。 我得到这个错误信息:
每个GROUP BY表达式都必须包含至少一个不是外部引用的列。
你能帮我解决吗? It's内的MS SQL Server 2008
你不能给组由1
尝试
SELECT
SolutionName -- Solution_NAM
from Table_View
Group By SolutionName
thx,它的工作原理! – Dantes
马丁的约GROUP BY语句是正确的,虽然你>可以<绝对使用列序号,而不是在一个ORDER BY中,在各种版本的SQL中(我在考虑TSQL,这是大多数核心SQL语法中的ISO标准)中的列名。
但明智的做法是不要在ORDER BY语句中使用列序号,即使它们有效。为什么?如果查询是存储过程的一部分,并且通过将列添加到原始表(或视图)来更改表模式,则不能保证原始列顺序将被更改保留。这意味着你可能会被一个意想不到的毫无意义的专栏排序,然后会破坏你的申请。
这是更好的做法,每次使用列名而不是序号(虽然像count(*),但不要挂上它,如果它临时查询自己的使用,永远不会看到生产日)。
你想做什么?您无法按SQL Server中的列顺序进行分组。您需要指定名称。 –