使⽤SQL语句如何实现条件判断
客户需求是咨询如何⽤SQL结合decode函数实现条件判断,⽐如当某⼀列数值⼤于500,对应类型“⼤于500”;当某⼀列数值⼩于500,对应类型“⼩于500”。
实际decode函数⽆法实现这个功能,实现要⽤到case when,为此我构造⼀个简单的⽰例来直观演⽰:
create table test302(id number, name varchar2(20));
insert into test302 values (499, 'aaa');
insert into test302 values (500, 'bbb');
insert into test302 values (501, 'ccc');
sql约束条件大于0
commit;
测试包含case when的SQL:
select u.id,u.name,
(case
when u.id>500 then '⼤于500'
when u.id<500 then '⼩于500'
else '等于500'
end
)type
from test302 u;
得到结果如下:
SQL> select u.id,u.name,
2    (case
3      when u.id>500 then '⼤于500'
4      when u.id<500 then '⼩于500'
5      else '等于500'
6      end
7    )type
8  from test302 u;
ID NAME                TYPE
---------- -------------------- ---------
499 aaa                  ⼩于500
500 bbb                  等于500
501 ccc                  ⼤于500
满⾜客户⽤SQL实现某列值条件判断的需求,我们可以看到这个例⼦⾮常简单,但这也是⼤多数运维dba的短板--SQL相关知识⽋缺,还是要学习积累的。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。