zoukankan      html  css  js  c++  java
  • [Oracle/Sql] Decode与Case

    Decode和case都可以实现SQL中的条件结构,下面为用法示例:

    select id,name,score,decode(floor(score/20),5,'A',4,'B',3,'C',2,'D','E') as grade from tb_score01 order by grade

    运行情况:

    SQL> select id,name,score,decode(floor(score/20),5,'A',4,'B',3,'C',2,'D','E') as grade from tb_score01 order by grade;
    
            ID NAME                      SCORE G
    ---------- -------------------- ---------- -
             3 VJJYYVKXKJKZADERKU           84 B
            11 AGUNCTGZFGDJJGLQTQMY         81 B
             2 YUVFJNTQAYJBTDYAQNIB         50 D
            10 XDJFPNUIP                    53 D
             9 ZFJKTW                       59 D
             1 KBKVMELHCIFEWFI              42 D
             5 DUEEXRBJJI                    5 E
             8 TEEGBSRVHASOTBHN             30 E
             7 UAMTSMFDE                     2 E
            13 YUNHCQSBVPQ                  27 E
            14 VIDHHKOAWOTQXRBSI            14 E
    
            ID NAME                      SCORE G
    ---------- -------------------- ---------- -
             4 KBJWREHVF                     8 E
            15 RMWEROFCFEVVFRU              14 E
             6 QLLJNGXVFR                    2 E
            12 WNMWJP                       30 E
    
    已选择15行。

    Case示例:

    select id,name,score,case floor(score/20) when 5 then 'A' when 4 then 'B' when 3 then 'C' when 2 then 'D' else 'E' end as grade from tb_score01 order by grade 

    执行情况:

    SQL> select id,name,score,case floor(score/20) when 5 then 'A' when 4 then 'B' when 3 then 'C' when 2 then 'D' else 'E' end as grade from tb_score01 order by grade ;
    
            ID NAME                      SCORE G
    ---------- -------------------- ---------- -
             3 VJJYYVKXKJKZADERKU           84 B
            11 AGUNCTGZFGDJJGLQTQMY         81 B
             2 YUVFJNTQAYJBTDYAQNIB         50 D
            10 XDJFPNUIP                    53 D
             9 ZFJKTW                       59 D
             1 KBKVMELHCIFEWFI              42 D
             5 DUEEXRBJJI                    5 E
             8 TEEGBSRVHASOTBHN             30 E
             7 UAMTSMFDE                     2 E
            13 YUNHCQSBVPQ                  27 E
            14 VIDHHKOAWOTQXRBSI            14 E
    
            ID NAME                      SCORE G
    ---------- -------------------- ---------- -
             4 KBJWREHVF                     8 E
            15 RMWEROFCFEVVFRU              14 E
             6 QLLJNGXVFR                    2 E
            12 WNMWJP                       30 E
    
    已选择15行。

    表及充值语句如下:

    CREATE TABLE tb_score01
    (
        id NUMBER not null primary key,
        name varchar2(20),
        score int
    )
    
    Insert into tb_score01
    select rownum,dbms_random.string('*',dbms_random.value(6,20)),dbms_random.value(0,100) from dual
    connect by level<=15
    order by dbms_random.random

    2020-01-27

  • 相关阅读:
    Microsoft Updateclient更新
    DataTables warning: table id=dataTable
    BCB使用线程删除目录中的图片
    grep常见使用方法总结
    实战:percona-xtrabackup 2.1.9 for mysql 5.6.19
    代理模式之cglib动态代理
    hello world to php( mac 配置 xmapp virtual host)
    Android开发之AlarmManager具体解释
    linux入门教程(六) Linux文件与目录管理
    linux入门教程(五) Linux系统的远程登录
  • 原文地址:https://www.cnblogs.com/heyang78/p/12236138.html
Copyright © 2011-2022 走看看