2013-11-01 172 views
1

我在表中有一列COL,它具有如下所示的整数值:1,2,3,10,11 ...和子。表中的唯一性由一个ID创建。每个ID可以与多个COL值相关联。例如Oracle:从一列中选择多个值,同时满足某些值的条件

ID | COL 
—————————— 
    1 | 2 
————+————— 
    1 | 3 
————+————— 
    1 | 10 
————+————— 

是有效的。

我想要做的只是从表中选择大于3的COL值,AND(有问题的部分)也选择最大值为1,2和3的值(如果它们存在于所有。所以在上面的表中,我想选择值[3,10],因为10大于3,3 = MAX(3,2)。

我知道我可以用两条SQL语句来做到这一点,但它有点混乱。有没有办法只用一个陈述呢?

回答

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

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

相关问题