在SQL Server中按别名列分组
在别名列上执行GROUP BY操作可能很棘手,但理解底层语法至关重要。让我们探讨正确的方法。
在你的示例中,别名列是'FullName',它使用表达式“LastName ', ' FirstName”创建。要按此别名分组,不能简单地像“GROUP BY 'FullName'”那样使用别名。相反,您需要传递创建别名的实际表达式。
正确的语法是:
<code class="language-sql">SELECT LastName + ', ' + FirstName AS 'FullName' FROM customers GROUP BY LastName + ', ' + FirstName</code>
通过指定表达式,您可以指示SQL Server根据'FullName'的计算值执行分组,从而确保结果准确。
进一步扩展,如果别名列是使用CASE语句导出的,例如在你的第二个示例中,同样的原则适用。GROUP BY子句仍然应该包含构成别名列的表达式,在本例中是:
<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 CASE WHEN LastName IS NULL THEN FirstName WHEN LastName IS NOT NULL THEN LastName + ', ' + FirstName END</code>
记住,当按别名列分组时,始终在GROUP BY子句中使用创建别名的表达式,以确保正确的数据聚合。
以上是如何在 SQL Server 中正确 GROUP BY 别名列?的详细内容。更多信息请关注PHP中文网其他相关文章!