SQL中的decode及case when的用法

在写 sql的时候我们会经常使用到decode函数,今天我们来讲一些decode的基本用法吧。

表达式:decode(列名,值1,值11,值2,值22,值3,值33……,值X)

表达式的意思:

       文字描述:如果列名对应的值等于值1,那么他的值就等于值11,如果列名对应的值是值2那么他的值就是值22,如果列名对应的值是值3那么他的值就是值33等等,条件都不满足,列名的值就是值X

       用java的语法来表达就是:

      if(列名的值==值1){  列名的值=值11      }

      else if(列名的值==值2){  列名的值=值22}

      else if(列名的值==值3){  列名的值=值33}

      。。。。。。。

      else{ 列名的值=值X}

     其实在sql中还有一种方法表达的来表达if else的判断语句,那就是 case when语句,但是case when 有两种表方式.

    用case when 来表达上面的语句:

表达方式一:

    case 列名 when 值1 then 值11

                   when 值2 then 值22

                   when 值3 then 值33

                  。。。。。。。

                  else

                  值X

      end

表达方式二:

case when 列名==值1 then 值11

when 列名==值2 then 值22

when 列名==值3 then 值33

。。。。。。。

else

值X

end

最后提一点一定要注意的是:

不管是case when 还是 decode 他们的值11,值22,值33  必须是同一种类型。

decode(列名,值1,varchar2,值2,varchar2,值3,varchar2……,varchar2)

decode(列名,值1,number,值2,number,值3,number……,number)

如果不一样那就会报错

无效数字

ps:如果对你们有帮助请点击下面的喜欢,谢谢

    原文作者:cccchaos
    原文地址: https://www.jianshu.com/p/c325f23c6782
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞