SQL ANY查询 - 有效的语法

use*_*986 2 sql any

尝试使用以下"ANY"语法并收到错误:

SELECT DISTINCT Em.ename
FROM Emp Em, Dept D
WHERE Em.eid In (Select D.managerid 
                 FROM Dept D
                 GROUP BY D.managerid
                 HAVING EVERY (D.budget > 1000000) AND ANY (D.budget < 5000000)
             );
Run Code Online (Sandbox Code Playgroud)

错误输出:

psql:queries.sql:28: ERROR:  syntax error at or near "ANY"
LINE 6:      HAVING EVERY (D.budget > 1000000) AND ANY (D.budget < 5...
                                                     ^
Run Code Online (Sandbox Code Playgroud)

编辑:我正在使用Postgres并使用Psql连接.

gbn*_*gbn 5

你可以把它变得更简单,不是吗?

SELECT DISTINCT Em.ename
FROM Emp Em, Dept D
WHERE Em.eid In (Select D.managerid 
                 FROM Dept D
                 WHERE D.budget > 1000000             
                 GROUP BY D.managerid
                 HAVING MIN(D.budget) < 5000000
             );
Run Code Online (Sandbox Code Playgroud)

要么

SELECT DISTINCT Em.ename
FROM Emp Em, Dept D
WHERE Em.eid In (Select D.managerid 
                 FROM Dept D
                 GROUP BY D.managerid
                 HAVING EVERY (D.budget > 1000000) AND MIN(D.budget) < 5000000
             );
Run Code Online (Sandbox Code Playgroud)

要么

SELECT DISTINCT Em.ename
FROM Emp Em, Dept D
WHERE Em.eid In (Select D.managerid 
                 FROM Dept D
                 GROUP BY D.managerid
                 HAVING MIN (D.budget) > 1000000 AND MIN(D.budget) < 5000000
             );
Run Code Online (Sandbox Code Playgroud)