SQL GROUP BY 子句:別名限制
在 SQL GROUP BY
子句中使用別名提供了便利,但了解它們的限制至關重要。 以下查詢說明了一個常見問題:
SELECT itemName as ItemName, substring(itemName, 1,1) as FirstLetter, Count(itemName) FROM table1 GROUP BY itemName, FirstLetter
此查詢失敗,因為 FirstLetter
是 only 在 SELECT
子句中定義的別名。 資料庫在GROUP BY
子句之前處理 子句;因此,SELECT
尚未被辨識。 正確的查詢需要使用原始表達式:FirstLetter
GROUP BY itemName, substring(itemName, 1,1)
FROM
WHERE
GROUP BY
HAVING
SELECT
ORDER BY
子句中使用之前定義。 GROUP BY
子句中使用別名。 但是,如果您的程式碼需要跨不同的資料庫系統運行,依賴此行為可能會導致可移植性問題。 為了獲得最大相容性,最佳實踐是避免在 GROUP BY
子句中使用別名,而是使用原始列名稱或表達式。 GROUP BY
以上是為什麼某些 SQL 資料庫的 GROUP BY 子句不能使用別名?的詳細內容。更多資訊請關注PHP中文網其他相關文章!