如何解决Oracle 查询以检索基于另一列的不同和公共列值
我需要从 STYPE 列中检索不同的 AHQ-WS1 值,其中 SCODE 同时具有 9531 和 9569。
两个不同 SCODE 值的基本通用 STYPE 值,但也不同。
是否可以只查询或者单独需要java代码?
解决方法
select stype from table
group by stype
having count(distinct case when scode in (9531,9569) then scode else null end) = 2
,
如果您希望 9531
至少有 1 行,而 9569
至少有 1 行有 SCODE
值,那么:
SELECT stype
FROM table_name
GROUP BY stype
HAVING COUNT(CASE scode WHEN 9531 THEN 1 END) > 0
AND COUNT(CASE scode WHEN 9569 THEN 1 END) > 0
如果您只需要每种类型的 1 行,请使用:
SELECT stype
FROM table_name
GROUP BY stype
HAVING COUNT(CASE scode WHEN 9531 THEN 1 END) = 1
AND COUNT(CASE scode WHEN 9569 THEN 1 END) = 1