在不同列中过滤特定条件时除外
Filter on column except when certain condition in a different column
我对 Oracle 和 PeopleSoft 有点陌生,但这是我的问题。
我需要根据几个列条件从数据库中筛选出一些行,但如果这些条件满足单独列中的不同条件,它们仍应包括在内。这是我目前所拥有的:
SELECT * FROM PS_SAA_ACRSE_AVLVW
WHERE CATALOG_NBR NOT LIKE '%000%' AND CATALOG_NBR NOT LIKE '%900%'
这很好用,但如果 CATALOG_NBR IS '900' AND SUBJECT 列是 'SAA',则应包括其中任何一个。
希望这是有道理的。
那OR
呢?
SELECT * FROM PS_SAA_ACRSE_AVLVW
WHERE ( CATALOG_NBR NOT LIKE '%000%' AND CATALOG_NBR NOT LIKE '%900%' )
OR ( CATALOG_NBR = '900' AND SUBJECT_column = 'SAA')
我对 Oracle 和 PeopleSoft 有点陌生,但这是我的问题。
我需要根据几个列条件从数据库中筛选出一些行,但如果这些条件满足单独列中的不同条件,它们仍应包括在内。这是我目前所拥有的:
SELECT * FROM PS_SAA_ACRSE_AVLVW
WHERE CATALOG_NBR NOT LIKE '%000%' AND CATALOG_NBR NOT LIKE '%900%'
这很好用,但如果 CATALOG_NBR IS '900' AND SUBJECT 列是 'SAA',则应包括其中任何一个。
希望这是有道理的。
那OR
呢?
SELECT * FROM PS_SAA_ACRSE_AVLVW
WHERE ( CATALOG_NBR NOT LIKE '%000%' AND CATALOG_NBR NOT LIKE '%900%' )
OR ( CATALOG_NBR = '900' AND SUBJECT_column = 'SAA')