2016-05-16 95 views
-2

我有點不擅長於SQL。 我有一個表:SQL選擇其中col1和col2與不同col3值相同組合的行

C1 || C2 || C3
-------------------------- abc || 123 || ADD
abc || 123 || MERGE
xyz || 456 || ADD
xyz || 456 || UPDATE

我需要得到具有相同的C1和C2和C3作爲添加行和MERGE 什麼是該SQL?

+0

應該發生什麼的時候'C1'和'C2'有'ADD','UPDATE'和'MERGE' –

+0

我的表格只能有這樣的設置,因此C1的,C2永遠不會有所有3相同C1,C2 combo – Bidisha

+0

我已經爲兩種場景 –

回答

0

如果你想找到C1C2它只有ADDUPDATEC3那麼如果你想找到C1C2既有ADDUPDATEC3然後用這個

使用

select C1, C2 
from yourtable 
Group by C1, C2 
Having count(case when C3 in ('ADD','MERGE') then 1 end) = count(*) 

select C1, C2 
from yourtable 
Group by C1, C2 
Having count(case when C3 = 'ADD' then 1 end) > 0 
    AND count(case when C3 = 'UPDATE' then 1 end) > 0 
+0

謝謝!這工作。 – Bidisha

0

找到C1,C2其中C3 ADD和MERGE無分組

SELECT C1,C2 
FROM 
table1 t1 
join table1 t2 on t1.C1= t2.C1 and t1.C2=t2.C2 and t2.C3='MERGE' 
WHERE 
t1.C3='ADD' 
+0

獲取ORA-00918:列模糊定義 – Bidisha

+0

@Bidisha'SELECT t1.C1,t1.C2 FROM table1 t1 join table1 t2 on t1.C1 = t2.C1 and t1.C2 = t2.C2 and t2.C3 ='MERGE' WHERE t1.C3 ='ADD'' –

相關問題