在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中的別名列正確分組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!