2013-11-01 167 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就夠了。

相關問題