zoukankan      html  css  js  c++  java
  • Oracle DECODE 函数应用示例

    /*Decode函数*/
       
    --Decode函数的原型为: Decode(testValue, if1, then1, if2,then2.....else).
       --针对testValue进行测试,若testValue等于if1则返回then1,若testValue等于if2则返回then2,....若都没有返回,刚返回else.
       --常见用法是在Oracle中实现行转列(Convert Rows to Columns).

    SQL脚本

    drop table student;
    /
    --1.创建表
    CREATE TABLE  STUDENT
    (
       SID 
    VARCHAR(10),
       SName 
    varchar(30),
       sex 
    varchar2(2DEFAULT '1',
       age 
    integer,
       address 
    varchar(100),
       
    primary key (SID)
    );
    /
    --2.新增数据
    Declare
    integer:=1;
    v_sql 
    varchar(1000);
    begin
    i:
    =1;
    while i<10 loop
    v_sql:
    =' insert into student(sid,SName,sex,age,address) values(:1,:2,:3,:4,:5)';
    if i<5 then
      
    execute immediate  v_sql  using i,'同学'||i,to_char(MOD(i,2)),18,'hunan';
    else
      
    execute immediate  v_sql  using i,'同学'||i,to_char(MOD(i,2)),19,'sichuan';
    end if;
    commit;
    i:
    =i+1;
    end loop;
    end;
    /
    commit;
    /

    --3.调用存储过程
    --
    ==========================================================================================
    begin
     InsertTestData(
    10);
    end;
    /

    /*Decode函数*/
       
    --Decode函数的原型为: Decode(testValue, if1, then1, if2,then2.....else).
       --针对testValue进行测试,若testValue等于if1则返回then1,若testValue等于if2则返回then2,....若都没有返回,刚返回else.
       --常见用法是在Oracle中实现行转列(Convert Rows to Columns).
       
    --4.用Decode 查询同学们的性别信息
    SELECT SName, 
           DECODE (sex,
                   
    '1''',
                   
    '0'''
                  ) 
    AS 性别
      
    FROM STUDENT;
      
    /

    --5.按性别分组,统计家庭地址在hunan,sichuan 的同学个数
    SELECT age, SUM (DECODE (address, 'hunan'10)) AS "湖南省",
                   
    SUM (DECODE (address, 'sichuan'10)) AS "四川省"
       
    FROM student
       
    GROUP BY age;
    /

    运行结果:

     

  • 相关阅读:
    [PHP]搭建Laravel心路历程
    [python爬虫]爬取贴吧某页美女图片+爬取糗百美女图片
    [Python2.7]python关于sys.agrv的使用
    [渗透测试]Sqlmap使用参数说明
    摘录的关于代码维护性的文章片段
    Python文本处理
    增加layer---待完成
    Python小程序——线性时间排序
    Python小程序——快排算法
    Python学习——多进程学习
  • 原文地址:https://www.cnblogs.com/furenjun/p/oracleDecode.html
Copyright © 2011-2022 走看看