需要使用别名引用,为where子句中的列定义。
SELECT COUNT(S.ID)
, SUBSTR(D.DEPARTENT_ID, 42,INSTR(D.DEPARTENT_ID, '.',2)-8) AS "**DEPT**"
FROM STUDENT S, DEPARTMENT D
WHERE S.OBJ LIKE '%' || **DEPT** || '%'
答案 0 :(得分:0)
拥有SUBSTR部件的派生表。
切换到现代的,明确的JOIN
语法。
添加GROUP BY
。
SELECT COUNT(S.ID), DEPT
FROM STUDENT S
JOIN (SELECT SUBSTR(D.DEPARTENT_ID, 42,INSTR(D.DEPARTENT_ID, '.',2)-8) AS DEPT
FROM DEPARTMENT) D
ON S.OBJ LIKE '%' || DEPT || '%'
GROUP BY DEPT
答案 1 :(得分:0)
这不起作用,因为SELECT语句将在WHERE子句之后加载。
您的查询的操作顺序为:FROM - >在哪里 - >聚合(如您使用的聚合)。 您还需要将聚合放在where子句中。