在WHERE中用CASE

唉,做为小白,我竟然不知道能在WHERE 中用CASE语句!实在丢人。
http://www.itpub.net/thread-1499742-1-2.html

1.在WHERE中可以用CASE语句来实现不同的条件
2.帖子中说可以用TRIM(A)=''来判断A是否是空字符串,做了一下实验。

SQL> select case when trim(a)='' then 'true' else 'false' end from (select '    ' a from dual);
 
CASEWHENTRIM(A)=''THEN'TRUE'EL
------------------------------
false
SQL> select case when trim(a) IS NULL then 'true' else 'false' end from (select '    ' a from dual);
 
CASEWHENTRIM(A)ISNULLTHEN'TRUE
------------------------------
true
SQL> select case WHEN a IS NULL then 'true' else 'false' end from (select '    ' a from dual);
 
CASEWHENAISNULLTHEN'TRUE'ELSE'
------------------------------
false

感觉不是那回事,空字符TRIM()后直接变成NULL了!!!
''其实和NULL是一样的。
SQL> select case when '' is null then 'null' end from dual;
 
CASEWHEN''ISNULLTHEN'NULL'END
-----------------------------
null

3.把'      '插入表中,不会转换成NULL值,即可以保存空字符串。而如果插入''则相当于插入了NULL.

虽然可以在WHERE中用CASE,但是对于这个查询,我觉得还是把CASE用于SELECT后面比较好懂,也是较为常见的写法。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24478467/viewspace-709079/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24478467/viewspace-709079/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值