SQL、Oracle——如果 Status = 'SO' 或 Status 为 Null,我正在尝试从表中提取记录。我只能在 Status = 'SO' 的情况下检索记录,因为如果它为 Null,则意味着我要从中提取的地方无人居住 - 那里没有任何东西可以查看。这几乎就像要求某人告诉他们是否在书中找到空白页,但既然是空白页,就真的没有页面可看,但书仍然存在。如果页面上有“SO”,您可以找到它。
DGMR_DEGS_CODE 可以是 PN、AW、SO 或空白(不存在)
Select distinct sp.sprite_id as "ID", SP.SPRITE_LAST_NAME as "Last", SP.SPRITE_FIRST_NAME as "First",
sh.TRAN_REQUEST_DATE as "Request Date",
NL.DGMR_DEGS_CODE as "Null Dgr",
SV.RSTS_ENRL as "Enrolled?",
sf.stcr_term_code as "Term",
sysdate as "Current Date"
from Sprite SP
join TRAN SH
on sp.sprite_pid = sh.tran_pid
full outer join DGMR NL
on NL.DGMR_pid = sp.sprite_pid
join stcr sf
on sp.sprite_pid = sf.stcr_pid
JOIN stvrsts SV
on SF.STCR_RSTS_CODE = SV.STVTS_CODE
where
Sp.sprite_change_ind is null
and sh.TRAN_REQUEST_DATE between sysdate-1 and sysdate
and (sf.stcr_term_code = '201401' or sf.stcr_term_code = '201402')
AND SV.RSTS_ENRL = 'Y'
AND (NL.DGMR_DEGS_CODE is null or NL.DGMR_DEGS_CODE = 'SO' )
--and (length(NL.DGMR_DEGS_CODE)=0 or NL.DGMR_DEGS_CODE = 'SO' )
--and NL.DGMR_DEGS_CODE <> 'PN'
--and NL.DGMR_DEGS_CODE <> 'AW'
--and NL.DGMR_DEGS_CODE <> 'PN' and NL.DGMR_DEGS_CODE <> 'AW'
如果我不包括 NL.DGMR_DEGS_CODE 的标准,它会选择 25 条记录:这些记录包括 SO、AW、PN 和 NULL 记录!如果我包括标准,它不会拉 NULL 记录。要求 SO 或 Null 仅选择 SO 记录。