作者fantasyj (如夢似幻)
看板Database
標題Re: [SQL ] 是否避免null值
時間Sat May 25 16:57:43 2013
※ 引述《cyclone350 (老子我最神)》之銘言:
恕刪
: 假設有一個欄位是 sex
: sex 描述是這樣
: '1' 代表男人, '2' 代表女人, ' ' 或 NULL 代表無值, 若有其他值代表錯誤
: 今天假設你要做判斷,可以這樣做 (以下擷取片段plsql)
: case TRIM(ROWDATA.sex)
: when '1' then dbms_output.put_line('男人');
: when '2' then dbms_output.put_line('女人');
: when NULL then dbms_output.put_line('無值');
: else dbms_output.put_line('錯誤');
: end case;
null的判斷只能使用is null 或 is not null(這應該是基本的sql吧?)
所以您這樣寫當然判斷不出來
以您的例子可以用下面這個寫法
case
when trim(rowdata.sex) = '1' then
dbms_output.put_line('男人');
when trim(rowdata.sex) = '2' then
dbms_output.put_line('女人');
when trim(rowdata.sex) is null then
dbms_output.put_line('無值');
else
dbms_output.put_line('錯誤');
end case;
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.164.90.36
→ cyclone350:我只是在闡述null無法用一般判斷式... 怎麼大家都認為 05/25 22:27
→ cyclone350:我不會... 而且我本文下面也解釋了... 05/25 22:28
→ fantasyj:這不是pl/sql才這樣判,而是sql本身對null就這樣判斷咧.. 05/25 23:01
→ fantasyj:所以並不會是問題阿... 05/25 23:04
→ fantasyj:小弟本身工作是負責Oracle ERP的開發跟維運 05/25 23:07
→ fantasyj:坦白說連oracle原廠很多地方都有用null的地方,真的不太認 05/25 23:08
→ fantasyj:為null的使用會是個問題... 05/25 23:08