0
SQL,Oracle - 我試圖從表中提取記錄,如果狀態='SO'或狀態爲空。 如果Status ='SO',那麼我只能夠檢索記錄,因爲如果它是Null,這意味着我從中拉出的地方沒有人口 - 沒有任何東西可供它查看。這幾乎就像要求某人告訴他們是否在書中找到一個空白頁面,但由於它是空白的,實際上沒有頁面可以看到,但該書仍然存在。如果頁面上有'SO',你可以找到它。從未填充的表中選擇 - IS NULL不起作用
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記錄。
你確定'dgmr_degs_code'實際上是NULL嗎?而不是說一個或多個空格字符?你發佈的代碼不是使用'IS NULL'--你問題的文本說你使用'IS NULL'來返回NULL值。你確定你實際上在你的代碼中使用了'IS NULL'嗎?如果是這樣,你可以編輯你的SQL語句以向我們展示你如何使用它? – 2014-09-12 21:51:20
我道歉。上面的代碼不會顯示「爲空」,因爲我曾嘗試過,但它不起作用。我也試過''。這甚至是一件真實的事情嗎?要麼 '%' ? 之後是空和''和'%'沒有奏效,我試過(長度(NL.DGMR_DEGS_CODE)= 0或NL.DGMR_DEGS_CODE ='SO') – 2014-09-12 21:58:09
什麼'dump(nl.dgmr_degs_code)'爲其中一個「空」行返回?這將顯示你確切地存儲在列中的內容。 – 2014-09-12 22:01:01