Having 子句中無法使用別名:邏輯原因
在SQL 中,別名提供了對列或表的替代引用,以增強可讀性。但是,如範例程式碼所示,在 HAVING 子句中使用別名會導致「無效的列名」錯誤。會出現這種情況是因為 SQL 運算的求值順序規定 HAVING 子句在別名分配之前處理。
SQL 中的執行流程如下:
在給定場景中,別名「col7」在 SELECT 子句中分配。但是,在計算 HAVING 子句時,別名分配尚未發生。因此,對“col7”的引用變得無效,從而導致錯誤。
這個解釋澄清了 HAVING 子句中別名的使用由於 SQL 計算的順序而受到限制,並強調 ORDER BY 子句可以利用別名,因為它是在別名分配後處理的。
以上是為什麼 SQL 的 HAVING 子句不能使用別名?的詳細內容。更多資訊請關注PHP中文網其他相關文章!