Decode 函数

来源:互联网 发布:邓子龙救努尔哈赤知乎 编辑:程序博客网 时间:2024/05/21 17:46
Decode   函数 
    
  Decode函数的功能有点像程式语言的if-then-else句子,他会能够根据资料的不同值,传回不同的数据,语法如下:    
    
    
  DECODE(COLUMN_NAME  
          ,VALUE1,   SUBSTITUTE1  
          ,VALUE2,   SUBSTITUTE2  
          ,   ...  
          ,DEFAULT  
  )   
    
  如果COLUMN_NAME   的 值 是 VALUE1   ,就传回 SUBSTITUTE1,VALUE2,就传回  SUBSTITUTE2 ,以此类推,如果以上的纸都不是,就返回DEFAULT  。    
    
  其实DECODE  也可以做到NVL  的功能,  例如:NVL(COMM,   0) 可以写成:    
   
   
  DECODE(COMM,   NULL,   0,   COMM)   
    
  假设你想列出每个雇员部门的名称,除了可以把 EMP 连到DEPT外,还可以用DECODE来做。    
   
  SQL>   SELECT   ENAME  
      2             ,DECODE(DEPTNO  
      3                     ,10   ,'Accounting'  
      4                     ,20   ,'Research'  
      5                     ,30   ,'Sales'  
      6                     ,40   ,'Opeartions'  
      7                     ,'UNKNOWN'  
      8             )   DEPARTMENT  
      9       FROM   EMP  
    10       ;  
   
  ENAME             DEPARTMENT  
  ----------   -------------  
  SMITH             Research  
  ALLEN             Sales  
  WARD               Sales  
  JONES             Research  
  MARTIN           Sales  
  BLAKE             Sales  
  CLARK             Accounting  
  SCOTT             Research  
  KING               Accounting  
  TURNER           Sales  
  ADAMS             Research  
  JAMES             Sales  
  FORD               Research  
  MILLER           Accounting  
   
  14   rows   selected.