精华内容
下载资源
问答
  • Oracle数据库中的case函数 case函数有两种格式: 1、格式一 CASE exp1 WHEN exp11 THEN exp12 WHEN exp21 THEN exp22 .... WHEN expN1 THEN expN2 ESLE expM END 说明: 该函数的返回值为:当exp...

    Oracle数据库中的case函数和decode函数

    1、case函数

    case函数有两种格式:

    (1)格式一

    CASE exp1
    	WHEN exp11 THEN exp12
    	WHEN exp21 THEN exp22
    	....
    	WHEN expN1 THEN expN2
    	ESLE expM
    END
    

    说明:
    该函数的返回值为:当exp11的值和exp1相等时,返回exp12的值,当exp21的值和exp1相等时,返回exp22的值,……,当expN1的值和exp1相等时,返回expN2的值,如果exp1和WHEN后面的所有表达式的值都不相等,则返回expM的值。

    举例:

    SQL> select empno,ename,job,sal,
      2  case job when 'CLERK' then sal*1.2
      3  when 'SALESMAN' then sal*2
      4  else sal
      5  end AS SAL_NEW
      6  from emp;
    
         EMPNO ENAME      JOB	       SAL    SAL_NEW
    ---------- ---------- --------- ---------- ----------
          7369 SMITH      CLERK	       	  800	  960
          7499 ALLEN      SALESMAN	      1600	 3200
          7521 WARD       SALESMAN	      1250	 2500
          7566 JONES      MANAGER	      2975	 2975
          7654 MARTIN     SALESMAN	      1250	 2500
          7698 BLAKE      MANAGER	      2850	 2850
          7782 CLARK      MANAGER	      2450	 2450
          7788 SCOTT      ANALYST	      3000	 3000
          7839 x_KING     PRESIDENT       5000	 5000
          7844 TURNER     SALESMAN	      1500	 3000
          7876 ADAMS      CLERK	    	  1100	 1320
          7900 JAMES      CLERK	     	  950	 1140
          7902 FORD       ANALYST	      3000	 3000
          7934 MILLER     CLERK	   		  1300	 1560
    
    14 rows selected.
    

    (2)格式二

    CASE 
    	WHEN exp11 THEN exp12
    	WHEN exp21 THEN exp22
    	....
    	WHEN expN1 THEN expN2
    	ESLE expM
    END
    

    说明:
    (1)exp11、exp12、……、expN1为逻辑表达式;
    (2)该函数的返回值为:当exp11的值为真时,返回exp12的值,当exp21的值为真时,返回exp22的值,……,当expN1的值为真时,返回expN2的值,如果WHEN后面的所有表达式的值都不为真,则返回expM的值。

    举例:

    SQL> select empno,ename,job,sal,
      2  case when job='CLERK' then sal*1.2
      3  when job='SALESMAN' then sal*2
      4  else sal
      5  end AS SAL_NEW
      6  from emp;
    
         EMPNO ENAME      JOB	       SAL    SAL_NEW
    ---------- ---------- --------- ---------- ----------
          7369 SMITH      CLERK	 	       800	  960
          7499 ALLEN      SALESMAN	      1600	 3200
          7521 WARD       SALESMAN	      1250	 2500
          7566 JONES      MANAGER	      2975	 2975
          7654 MARTIN     SALESMAN	      1250	 2500
          7698 BLAKE      MANAGER	      2850	 2850
          7782 CLARK      MANAGER	      2450	 2450
          7788 SCOTT      ANALYST	      3000	 3000
          7839 x_KING     PRESIDENT       5000	 5000
          7844 TURNER     SALESMAN	      1500	 3000
          7876 ADAMS      CLERK	 	      1100	 1320
          7900 JAMES      CLERK	  	       950	 1140
          7902 FORD       ANALYST	      3000	 3000
          7934 MILLER     CLERK	    	  1300	 1560
    
    14 rows selected.
    

    2、DECODE函数

    DECODE函数的功能和CASE函数相同,但使用更方便。语法如下:

    decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n, default)
    

    说明:该函数把expression的值分别和search_1,search_2,…,search_n的值进行比较,如果和某个值相等,则返回其后的result值,如果都不相等,则返回default。

    举例:

    SQL> select empno,ename,job,sal,
      2  decode(job,'CLERK',sal*1.2,'SALESMAN',sal*2,sal) AS SAL_NEW
      3  from emp;
      
         EMPNO ENAME      JOB	       SAL    SAL_NEW
    ---------- ---------- --------- ---------- ----------
          7369 SMITH      CLERK	 	       800	  960
          7499 ALLEN      SALESMAN	      1600	 3200
          7521 WARD       SALESMAN	      1250	 2500
          7566 JONES      MANAGER	      2975	 2975
          7654 MARTIN     SALESMAN	      1250	 2500
          7698 BLAKE      MANAGER	      2850	 2850
          7782 CLARK      MANAGER	      2450	 2450
          7788 SCOTT      ANALYST	      3000	 3000
          7839 x_KING     PRESIDENT       5000	 5000
          7844 TURNER     SALESMAN	      1500	 3000
          7876 ADAMS      CLERK	 	      1100	 1320
          7900 JAMES      CLERK	  	       950	 1140
          7902 FORD       ANALYST	      3000	 3000
          7934 MILLER     CLERK	    	  1300	 1560
    
    14 rows selected.
    
    展开全文
  • Oracle数据库中decode函数的使用

    千次阅读 2017-10-23 16:43:19
    decode函数的使用方法:DECODE()函数,它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功...

    一、decode函数的使用方法:

    DECODE()函数,它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。
    语法结构如下:

    decode (expression, search_1, result_1)
    decode (expression, search_1, result_1, search_2, result_2)
    decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n)
    decode (expression, search_1, result_1, default)
    decode (expression, search_1, result_1, search_2, result_2, default)
    decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n, default)

    比较表达式和搜索字,如果匹配,返回结果;如果不匹配,返回default值;如果未定义default值,则返回空值。

    二、示例:

    创建表:

    create table student_score(
       name varchar2(30),
       subject varchar2(20),
       score number(4,1)
    );

    插入数据:

    insert into student_score (name,subject,score) values ('张三','中文',90);
    insert into student_score (name,subject,score) values ('李四','数学',80);
    insert into student_score (name,subject,score) values ('王五','外语',89);
    insert into student_score (name,subject,score)values('li shi','Chinese',96);
    insert into student_score (name,subject,score)values('li shi','Mathematics',86);
    insert into student_score (name,subject,score)values('li shi','English',76);
    insert into student_score (name,subject,score)values('wang wu','Chinese',92);
    insert into student_score (name,subject,score)values('wang wu','Mathematics',82);
    insert into student_score (name,subject,score)values('wang wu','English',72);

    查询:

    select a.*,rowid from student_score a;

    这里写图片描述

    ---如果学科为中文,则返回分数,否则返回0
    select name,subject,decode(subject,'中文',score,0) from student_score;

    这里写图片描述

    ---统计中文学科的分数
    select name,sum(decode (subject,'中文',score,0)) as 中文 from student_score group by name;

    这里写图片描述

    select name,score as 中文 from student_score;

    这里写图片描述

    ---使用decode函数
    select name,
           sum(decode(subject, '中文', score, 0)) as 中文,
           sum(decode(subject, '数学', score, 0)) as 数学,
           sum(decode(subject, '外语', score, 0)) as 外语
      from student_score
     group by name;

    这里写图片描述

    ---使用case when
    select name,
           sum(case
                 when subject = '中文' then
                  nvl(score, 0)
                 else
                  0
               end) 中文,
           sum(case
                 when subject = '数学' then
                  nvl(score, 0)
                 else
                  0
               end) 数学,
           sum(case
                 when subject = '外语' then
                  nvl(score, 0)
                 else
                  0
               end) 外语
      from student_score
     group by name

    这里写图片描述

    展开全文
  • oracledecode函数,如下:  select sum(decode(sex,'男',0,1)) 男生数 from school; 统计男生数目,含义为:decode()sex字段为男时,用1代替,然后计算总和 而mysql没有该函数,替代有ca

    转自:http://www.cnblogs.com/chero/archive/2012/12/06/2804940.html

    oracle中有decode函数,如下:

      select sum(decode(sex,'男',0,1)) 男生数 from school;

    统计男生数目,含义为:decode()中sex字段为男时,用1代替,然后计算总和

    mysql中没有该函数,替代的有case与if函数。

    case函数

    同样统计男女生人数,语句如下:

    SELECT school,COUNT(school) 人数,
      SUM(CASE
        WHEN sex='男'THEN 1
        ELSE 0
        END) 
      男生数,
      SUM(CASE
        WHEN sex='女'THEN 1
        ELSE 0
        END) 
      女生数
    FROM sch 
    GROUP BY sex,school

    例2:

    SELECT DISTINCT
        user_id User_id,
        SUM(CASE
            WHEN msg = '人口查询' THEN 1
            ELSE 0
        END) 人口查询数,
        SUM(CASE
            WHEN msg = '车辆查询' THEN 1
            ELSE 0
        END) 车辆查询数
    FROM
        zy2
    GROUP BY user_id 

    if语句

    同样统计男女生人数,语句如下:

    SELECT school,COUNT(school) 人数,SUM(IF(sex='男',1,0)) 男生数,SUM(IF(sex='女',1,0)) 女生数, 
      SUM(IF(pass=1,1,0)) pass1,SUM(IF(pass=0,1,0)) pass0,
      SUM(IF(state=1,1,0)) state1,SUM(IF(state=0,1,0)) state0
    FROM sch 
      GROUP BY sex,school

     

    语法和decode类似。


    补充:

    首先让我们看一下 CASE 的语法。在一般的 SELECT 中,其语法如下: 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    SELECT <myColumnSpec> = 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    CASE 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    WHEN <A> THEN <somethingA> 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    WHEN <B> THEN <somethingB> 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    ELSE <somethingE> 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    END 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁在上面的代码中需要用具体的参数代替尖括号中的内容。下面是一个简单的例子: 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    USE pubs 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    GO 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    SELECT 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁     Title, 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁    
    'Price Range' = 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁    
    CASE 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
    WHEN price IS NULL THEN 'Unpriced' 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
    WHEN price < 10 THEN 'Bargain' 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
    WHEN price BETWEEN 10 and 20 THEN 'Average' 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
    ELSE 'Gift to impress relatives' 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁    
    END 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    FROM titles 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    ORDER BY price 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    GO 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁这是 
    CASE 的典型用法,但是使用 CASE 其实可以做更多的事情。比方说下面的 GROUP BY 子句中的 CASE: 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    SELECT 'Number of Titles'Count(*
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    FROM titles 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    GROUP BY 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁    
    CASE 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
    WHEN price IS NULL THEN 'Unpriced' 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
    WHEN price < 10 THEN 'Bargain' 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
    WHEN price BETWEEN 10 and 20 THEN 'Average' 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
    ELSE 'Gift to impress relatives' 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁    
    END 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    GO 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁你甚至还可以组合这些选项,添加一个 
    ORDER BY 子句,如下所示: 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    USE pubs 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    GO 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    SELECT 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁    
    CASE 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
    WHEN price IS NULL THEN 'Unpriced' 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
    WHEN price < 10 THEN 'Bargain' 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
    WHEN price BETWEEN 10 and 20 THEN 'Average' 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
    ELSE 'Gift to impress relatives' 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁    
    END AS Range, 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁     Title 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    FROM titles 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    GROUP BY 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁    
    CASE 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
    WHEN price IS NULL THEN 'Unpriced' 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
    WHEN price < 10 THEN 'Bargain' 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
    WHEN price BETWEEN 10 and 20 THEN 'Average' 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
    ELSE 'Gift to impress relatives' 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁    
    END
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁     Title 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    ORDER BY 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁    
    CASE 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
    WHEN price IS NULL THEN 'Unpriced' 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
    WHEN price < 10 THEN 'Bargain' 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
    WHEN price BETWEEN 10 and 20 THEN 'Average' 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
    ELSE 'Gift to impress relatives' 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁    
    END
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁     Title 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
    GO 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁 
    sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁注意,为了在 
    GROUP BY 块中使用 CASE,查询语句需要在 GROUP BY 块中重复 SELECT 块中的 CASE 块。

    展开全文
  • decode函数在OracleSQL查询语句中的使用非常广泛,也经常应用到PL/SQL语句块中。1,decode()函数语句的基本表达式是:decode(expr1,expr2,expr3,[expr4])这个表达式个人理解,可以称之为decode的比较运算...

    本文主要向大家介绍了Oracle数据库之Oracle decode函数,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。

    decode函数在Oracle SQL查询语句中的使用非常广泛,也经常应用到PL/SQL语句块中。

    1,decode()函数语句的基本表达式是:

    decode(expr1,expr2,expr3,[expr4])

    这个表达式个人理解,可以称之为decode的比较运算,可以对比 nvl()函数和 coalesce()函数。可以作如下理解该表达式:

    1,如果expr1 = expr2,decode函数返回expr3表达式的值;

    2,如果expr1 != expr2,decode函数返回expr4表达式的值,如果expr4未指定,则返回null;

    使用示例1:

    select decode(1,-1,100,90),decode(-1,-1,100,90),decode(0,-1,100) from dual;

    DECODE(1,-1,100,90) DECODE(-1,-1,100,90) DECODE(0,-1,100)

    ------------------- -------------------- -------------------

    90           100

    示例说明:第一个decode函数表达式中,1 != -1,所以返回90;第二个decode函数表达式中,-1 = -1,所以返回100,第三个decode函数表达式中,0 != -1,但是未指定第4个表达式的值,所以函数返回null值。

    示例2,decode函数另类用法:比如我们要查询出emp表中,有奖金的员工和没有奖金员工的总数量

    通常情况下,我们需要两个查询语句:

    select count(*) from emp where comm is not null;

    select count(*) from emp where comm is null;

    但是使用decode函数,我们可以在一行查询中搞定:

    select sum(decode(nvl(comm,1),1,1,0)) count_no_comm,sum(decode(nvl(comm,1),1,0,1)) conut_comm from emp;

    COUNT_NO_COMM CONUT_COMM

    ------------- ----------

    10            4

    代码说明:借助于nvl() 函数来判定奖金comm是否为空,如果为空返回值为1,然后拿nvl的返回值和1进行比较,如果相等,返回1(说明comm为空),不等返回0(说明comm不为空); 最后sum对decode的返回结果进行加和,求出结果。

    2,decode分段函数,是上述decode比较运算的一种变式,形式和case 表达式很相似,可以作为参考比较

    语法结构:

    decode(expr1,expr2,return_expr2, --如果expr1=expr2,返回return_expr2;

    expr3,return_expr2, --如果expr1=expr3,返回return_expr3;

    exprn,return_exprn, --如果expr1=expr2,返回return_exprn;

    exprx) [new_expr] --如果expr1不再上述expr2-exprn之间,返回return_exprx; new_expr为别名

    使用示例:根据部门ID不同,对薪资进行相应的调整

    1,我们先用case表达式实现:

    复制代码

    select ename,deptno,sal,case deptno when 10 then sal * 1.1

    when 20 then sal * 1.2

    when 30 then sal * 1.3

    else sal

    end new_sal

    from emp order by deptno,new_sal;

    ENAME                    DEPTNO        SAL    NEW_SAL

    -------------------- ---------- ---------- ----------

    MILLER                       10       1800       1980

    CLARK                        10       2950       3245

    KING                         10       5000       5500

    SMITH                        20       1300       1560

    ADAMS                        20       1600       1920

    FORD                         20       3000       3600

    SCOTT                        20       3000       3600

    JONES                        20       3475       4170

    JAMES                        30       1450       1885

    WARD                         30       1750       2275

    MARTIN                       30       1750       2275

    TURNER                       30       2000       2600

    ALLEN                        30       2100       2730

    BLAKE                        30       3350       4355

    复制代码

    2,使用decode函数实现

    复制代码

    select ename,deptno,sal,decode(deptno,10,sal * 1.1,

    20,sal * 1.2,

    30,sal * 1.3,

    sal) new_sal

    from emp;

    ENAME                    DEPTNO        SAL    NEW_SAL

    -------------------- ---------- ---------- ----------

    SCOTT                        20       3000       3600

    SMITH                        20       1300       1560

    ALLEN                        30       2100       2730

    WARD                         30       1750       2275

    JONES                        20       3475       4170

    MARTIN                       30       1750       2275

    BLAKE                        30       3350       4355

    CLARK                        10       2950       3245

    KING                         10       5000       5500

    TURNER                       30       2000       2600

    ADAMS                        20       1600       1920

    JAMES                        30       1450       1885

    FORD                         20       3000       3600

    MILLER                       10       1800       1980

    复制代码

    在某些情况下,使用decode函数可以达到和case表达式一样效果。

    本文由职坐标整理并发布,希望对同学们学习Oracle有所帮助,更多内容请关注职坐标数据库Oracle数据库频道!

    展开全文
  • DECODE(WP01.ONDO_KBN,0,'対象外'1,'常温',2,'保冷') AS ONDO_KBN FROM WP01_S_HAITOTAL WP01[/code] //分析: 当WP01.ONDO_KBN=0时,将"対象外"赋值 当WP01.ONDO_KBN=1时,将"常温"赋值 ...
  • Decode函数与一系列嵌套 IF-THEN-ELSE语句相似 decode()函数简介: 使用方法: Select decode(columnname,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) From talbename Where … 其中columnname为要...
  • Oracle 数据库SQL decode()函数简介

    千次阅读 2016-08-23 20:07:58
    decode()函数简介: 主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明); 使用方法: ...Select decode(columnname,...其中columnname为要选择table所定义column, ·含义解释:
  •  DECODE函数的作用:它可以将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有...
  •  DECODE函数的作用:它可以将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有...
  • decode函数是Oracle数据库独有. 语法为: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 例子:select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; -->取出两个变量较小值.  ...
  •  rownum:是数据库中提供一个伪劣,作用是给记录分配行号。  思想:先给记录分配行号,再根据我们要查找范围进行检索,确定行号范围。  练习1:查询员工信息,同时分配行号  select e.*,rownum from emp...
  • oracle中的decode函数

    2017-08-14 14:36:24
    DECODE函数是ORACLE PL/SQL是功能强大函数之一,目前还只有ORACLE公司SQL提供了此函数,其他数据库厂商SQL实现还没有此功能。 DECODE有什么用途 呢?  先构造一个例子,假设我们想给智星职员加工资,其标准...
  •  DECODE函数的作用:它可以将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有...
  • decode在Oracle使用方法(自己理解)。 第一种是: select decode(a,b,c,d) from dual; 解释:如果a 和 b 相等,则输出c ,否则输出d 第二种是: select decode(a,b,c) from dual; 解释:如果a 和 b 相等, 则输出...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 454
精华内容 181
关键字:

数据库中的decode函数