在 HAVING 子句中使用列别名

以 NPS 兼容性方式运行时,可以在查询的 HAVING 子句中指定 SELECT 子句列的显示名。

是否使用 NPS 兼容性方式取决于 SQL_COMPAT 全局变量的设置:
  • SQL_COMPAT='NPS' 时,HAVING 子句可以通过名称或显示名来引用 SELECT 子句的列。
  • 否则,HAVING 子句只能通过名称(而非显示名)来引用 SELECT 子句的列。

示例

下列示例说明当 SQL_COMPAT='NPS' 时,在 HAVING 子句中使用 SELECT 子句列的显示名:
SELECT c1 as a, COUNT(*) as c
FROM t1
GROUP BY c1 having a > 20 and c > 10;

SELECT t1.c1 as a, t1.c2+t2.c3 as b, COUNT(*) as c
FROM t1 JOIN t2 ON t1.c1 = t2.c1
GROUP BY t1.c1, b having a+5 = 10 ;

SELECT var(c1) as a
FROM t1
GROUP BY c1 having a > 200