zoukankan      html  css  js  c++  java
  • decode与case when 函数

    百度百科:
    DECODE函数,是ORACLE公司的SQL软件ORACLE PL/SQL所提供的特有函数计算方式,以其简洁的运算方式,可控的数据模型和灵活的格式转换而闻名。
    DECODE 中的if-then-else逻辑
    在逻辑编程中,经常用到If – Then –Else 进行逻辑判断。在DECODE的语法中,实际上就是这样的逻辑处理过程。它的语法如下:
    DECODE(expr, if1, then1, if2,then2, if3,then3, . . . else )
    expr表示一个表达式,可以是一个字段也可以是一个结果。当每个expr值被测试,如果expr的值为if1,Decode 函数的结果是then1;如果expr等于if2,Decode函数结果是then2;等等。事实上,可以给出多个if/then 配对。如果expr结果不等于给出的任何配对时,Decode 结果就返回else 。
    需要注意的是,这里的if、then及else 都可以是函数或计算表达式。 
     除此之外还有case...when...else...end的条件表达式。这二者是相同的,都是实现相同的功能,只是语法不同而已。
    格式为:
      case 表达式
        when 表达式1 then 值1
        when 表达式2 then 值2
        when 表达式3 then 值3
        else 默认值
      end
     

    SQL> select ename,decode(ename,'SMITH','史密斯','SCOTT','创始人','DAB管理员') from emp;

    ENAME DECODE(ENAME,'SMITH','史密斯','SCOTT','创始人','DAB管理员')
    ---------- --------------------------------------------------
    SMITH 史密斯
    ALLEN DAB管理员
    WARD DAB管理员
    JONES DAB管理员
    MARTIN DAB管理员
    BLAKE DAB管理员
    CLARK DAB管理员
    SCOTT 创始人
    KING DAB管理员
    TURNER DAB管理员
    ADAMS DAB管理员
    JAMES DAB管理员
    FORD DAB管理员
    MILLER DAB管理员

  • 相关阅读:
    noip宝藏
    [HNOI2008]玩具装箱TOY
    hdu 4372 Count the Buildings 轮换斯特林数
    bzoj 3000 Big Number 估算n!在k进制下的位数 斯特林公式
    自然数幂求和方法1:扰动法(求两次)
    斯特林数 学习笔记
    hdu 3625 Examining the Rooms 轮换斯特林数
    cf 472G Design Tutorial: Increase the Constraints 分块+压位/FFT
    chef and churu 分块 好题
    分块 学习笔记
  • 原文地址:https://www.cnblogs.com/jasonboren/p/10900862.html
Copyright © 2011-2022 走看看