我在一个表中有一个COL列,它有一个整数值,如:1,2,3,10,11 ......和son on。表中的唯一性由ID创建。每个ID可以与多个COL值相关联。例如
ID | COL
——————————
1 | 2
————+—————
1 | 3
————+—————
1 | 10
————+—————
有效。
我想要做的是只选择表格中大于3的COL值,AND(有问题的部分)也选择值为1,2和3的MAX值,如果它们一直存在的话。所以在上表中,我想选择值[3,10],因为10大于3而3 = MAX(3,2)。
我知道我可以使用两个SQL语句执行此操作,但它有点混乱。有没有办法只用一个语句来做?
答案 0 :(得分:2)
SELECT col FROM table
WHERE
col > 3
UNION
SELECT MAX(col) FROM table
WHERE
col <= 3
此查询不假设您需要每个ID的结果,因为您没有明确提及它。 我不认为你需要pl / sql,SQL就足够了。