在SQL Server中使用别名列进行GROUP BY操作
在SQL Server中,对别名列执行GROUP BY操作需要特定的语法。以下是必要的调整:
不要在GROUP BY子句中引用别名(例如,GROUP BY 'FullName'),而应使用定义别名本身的表达式。例如,如果别名'FullName'定义为LastName ', ' FirstName,则正确的GROUP BY表达式为:
<code class="language-sql">SELECT LastName + ', ' + FirstName AS 'FullName' FROM customers GROUP BY LastName + ', ' + FirstName</code>
此修改后的查询根据计算的'FullName'表达式正确应用GROUP BY操作,从而对结果进行分组。
扩展:CASE表达式
同样的原则也适用于从CASE表达式派生的别名列。考虑以下示例:
<code class="language-sql">SELECT CASE WHEN LastName IS NULL THEN FirstName WHEN LastName IS NOT NULL THEN LastName + ', ' + FirstName END AS 'FullName' FROM customers GROUP BY LastName, FirstName</code>
在这里,GROUP BY子句列出了LastName和FirstName,因为它们包含在用于派生'FullName'别名的CASE表达式中。这确保了结果根据用于计算'FullName'的基础值进行分组。
以上是如何按SQL Server中的别名列进行分组?的详细内容。更多信息请关注PHP中文网其他相关文章!