zoukankan      html  css  js  c++  java
  • DECODE 与CASE WHEN 的比较以及用法

    1.DECODE 只有Oracle 才有,其它数据库不支持;
    2.CASE WHEN的用法, Oracle、SQL Server、 MySQL 都支持;
    3.DECODE 只能用做相等判断,但是可以配合sign函数进行大于,小于,等于的判断,CASE when可用于=,>=,<,<=,<>,is null,is not null 等的判断;
    4.DECODE 使用其来比较简洁,CASE 虽然复杂但更为灵活;
    5.另外,在decode中,null和null是相等的,但在case when中,只能用is null来判断,示例如下:
    emp表中有一列comm,如果这列为null,则显示为0,否则,显示为原值:

    用法

    CASE WHEN:

    单条件

    CASE 
    WHEN  MAIL_FLAG = '1'  THEN  '已发放'
    WHEN  MAIL_FLAG = '0'  THEN  '未发放'

    ELSE   ''
    END AS MAIL_FLAG

    多条件

    CASE 
    WHEN  MAIL_FLAG = '1'  AND  STATUS = '1'  THEN  '已发放' 
    WHEN  MAIL_FLAG = '0'  AND  STATUS = '0'  THEN  '未发放'

    ELSE   ''
    END AS MAIL_FLAG

    DECODE:

    DECODE(MAIL_FLAG,'1','已导出','0','未导出 ' ) AS  MAIL_FLAG

    DECODE(条件,值1,返回值1,值2,返回值2.....)

    条件=值1 返回值1

    条件=值2 返回值2

    ...........................

  • 相关阅读:
    list count++
    Java程序员常用工具类库
    Java读写Excel之POI超入门
    JS操作JSON总结
    ORACLE RAC 11G 添加以及删除UNDO表空间
    oracle 索引优化之distinct
    Redis常用的命令
    Linux 安装Redis 5.0(以及参数调优)
    OEM12C(12.1.0.5)安装插件监控mysql(linux)
    mysql版本升级
  • 原文地址:https://www.cnblogs.com/suxiaBlogs/p/7071953.html
Copyright © 2011-2022 走看看