2017-06-19 59 views
0

我有一張如下表,請幫我建立它。不同條件下的相同列查詢

實施例:

column 1 column 2 
111111  100 
111111  101 
111111  102 
222222  101 
222222  102 
333333  100 

所以我尋找列1僅具有100但不是101或102的同一列。

從我上面的例子中,333333 100正是我期待的,其中有100個,但不是101和102

+0

您正在使用什麼數據庫? – John

+0

提供您到目前爲止的SQL示例。 –

+0

我在DB2中構建它。 – Gireesh

回答

0

您可以使用group byhaving如果你想column1 value:

select column1 
from t 
group by column1 
having sum(case when column2 = 100 then 1 else 0 end) > 0 and 
     sum(case when column2 in (101, 102) then 1 else 0 end) = 0; 

如果這些是您關心的唯一三個值abou T,您可以簡化這:

select column1 
from t 
where column2 in (100, 101, 102) 
group by column1 
having max(column2) = 100; 
+0

謝謝戈登,它完美的工作。 – Gireesh

0

嘗試not exists操作

SELECT * 
FROM table t1 
WHERE column2 = 100 
AND NOT EXISTS (
    SELECT * FROM table t2 
    WHERE t1.column1 = t2.column1 
    AND t2.column2 in (101, 102) 
) 
+0

完美的作品,謝謝krokodilko – Gireesh

相關問題