我有一张表,其中包含需要从中排除行的ID列表。对于每一行,一个ID在comment_code列中可以有一个值。我需要从结果中排除具有两个特定值组合的ID,并保留仅包含这两个值中的一个的ID。对不起,如果这不明确。Oracle SQL:尝试基于列值的组合排除行
表例如:
ID SEQUENCE FUNCTION COMMENT_CODE
---------------------------------------------------------------
1 1 tree apple
1 2 bush orange
2 1 tree apple
2 2 tree banana
3 1 bush strawberry
输出需要:
ID SEQUENCE FUNCTION COMMENT_CODE
---------------------------------------------------------------
2 1 tree apple
基本上,如果一个ID具有与“苹果”作为comment_code和以“桔子”作为注释代码的行的行,我不想在结果中看到该ID。如果一个ID有一行'apple'作为注释代码,我希望在我的结果中看到它们,而不管其他任何comment_code,只要它们没有橙色注释代码就可以。
任何帮助将不胜感激。我试过使用存在和不存在子句的组合,以及listagg将每个ID的comment_code值组合在一起,但我没有得到预期的结果。
谢谢戈登!我添加了“AND T.COMMENT ='apple'”,现在我得到了预期的结果。我昨天想过做一个CASE,但我无法想像如何在这种情况下实现它。 – user1904581
当你说'group by t'你是否指'按ID编组? –
@CaiusJard。 。 。谢谢。 –