HAVING 子句中的 SQL Server 别名限制
在 SQL Server 中,在 HAVING 子句中使用聚合函数的别名可能会导致“列名无效”错误。这种明显的矛盾源于 SQL 查询的执行流程。
HAVING 子句在组操作之后但在选择过程之前进行评估。因此,当 HAVING 子句首次执行时,分配给聚合函数的别名(例如提供的代码片段中的“col7”)尚未被服务器识别。
查询执行的顺序如下如下:
因此,在 HAVING 子句评估时,服务器无法将 'col7' 识别为有效的列名称。此限制阻止在 HAVING 子句中使用别名来引用聚合函数。
但是,可以在 ORDER BY 子句中使用别名,因为此评估发生在 HAVING 子句之后。
以上是为什么在 HAVING 子句中使用聚合函数别名时,SQL Server 会产生'无效的列名”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!