Oracle:在满足某些值的条件的同时从列中选择多个值

时间:2013-11-01 21:48:12

标签: sql oracle

我在一个表中有一个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语句执行此操作,但它有点混乱。有没有办法只用一个语句来做?

1 个答案:

答案 0 :(得分:2)

SELECT col FROM table
WHERE
    col > 3
UNION
SELECT MAX(col) FROM table
WHERE
    col <= 3

此查询不假设您需要每个ID的结果,因为您没有明确提及它。 我不认为你需要pl / sql,SQL就足够了。