基于多个字段的DB2 SQL查询筛选行

goucqfw6  于 2022-12-13  发布在  DB2
关注(0)|答案(1)|浏览(180)

我需要根据以下条件编写一个查询:
在一个表中,必须满足以下条件:
表名:表中的DLS_RBM_RBI列

  • RBM_3_CD必须为空
  • 如果RBM_3_CD为空,则RBM_2_CD必须为1
  • 如果RBM_3_CD为空且RBM_2_CD为空,则RBM_1_CD必须为1

这些条件在SQL语句中是如何编码的?在where子句中的IF中还是在select中的case中?
我试着在这些条件下使用where子句。

AND (D.RBM_3_CD = '') 
        OR (D.RBM_3_CD = '' AND D.RBM_2_CD = '1') 
        OR (D.RBM_3_CD = '' AND RBM_2_CD = '' AND RBM_1_CD = '1')
bihw5rsg

bihw5rsg1#

第一个语句
AND (D.RBM_3_CD = ' ')
否定了第二个和第三个的必要性。第一个陈述不可能是假的,而第二个或第三个是真的。
试试这个

where D.RBM_3_CD = ' '
   and ( (D.RBM_3_CD = '' AND D.RBM_2_CD = '1')
        or (D.RBM_3_CD = '' AND RBM_2_CD = '' AND RBM_1_CD = '1') 
       )

相关问题