在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中文網其他相關文章!