使用SQL语句如何实现条件判断



2018-09-28 23:15 
AlfredZhao 
阅读(24822
评论(0
编辑 
收藏 
举报

客户需求是咨询如何用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\');
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相关知识欠缺,还是要学习积累的。

版权声明:本文为jyzhao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/jyzhao/p/9721441.html