HAVING 子句中的SQL Server 別名限制
在SQL Server 中,在HAVING 子句中使用聚合函數的別名可能會導致“列名無效”錯誤。這種明顯的矛盾源自於 SQL 查詢的執行流程。
HAVING 子句在群組操作之後但在選擇過程之前進行評估。因此,當 HAVING 子句首次執行時,指派給聚合函數的別名(例如提供的程式碼片段中的「col7」)尚未被伺服器識別。
查詢執行的順序如下如下:
因此,在 HAVING 子句評估時,伺服器無法將 'col7' 識別為有效的列名稱。此限制阻止在 HAVING 子句中使用別名來引用聚合函數。
但是,可以在 ORDER BY 子句中使用別名,因為此評估發生在 HAVING 子句之後。
以上是為什麼在 HAVING 子句中使用聚合函數別名時,SQL Server 會產生「無效的列名」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!