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:如果对你们有帮助请点击下面的喜欢,谢谢

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 系统用户: 1.sys system(sys权限最高) 2.sysman(操作企业管理器) 密码是安装的时候输入的...
    3hours阅读 5,502评论 0 0
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,352评论 0 33
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,493评论 19 139
  • 1.简介 数据存储有哪些方式?电子表格,纸质文件,数据库。 那么究竟什么是关系型数据库? 目前对数据库的分类主要是...
    乔震阅读 5,867评论 0 2
  • 两天
    iiverson阅读 1,930评论 0 0