作者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
1F:→ cyclone350:我只是在阐述null无法用一般判断式... 怎麽大家都认为 05/25 22:27
2F:→ cyclone350:我不会... 而且我本文下面也解释了... 05/25 22:28
3F:→ fantasyj:这不是pl/sql才这样判,而是sql本身对null就这样判断咧.. 05/25 23:01
4F:→ fantasyj:所以并不会是问题阿... 05/25 23:04
5F:→ fantasyj:小弟本身工作是负责Oracle ERP的开发跟维运 05/25 23:07
6F:→ fantasyj:坦白说连oracle原厂很多地方都有用null的地方,真的不太认 05/25 23:08
7F:→ fantasyj:为null的使用会是个问题... 05/25 23:08