zoukankan      html  css  js  c++  java
  • Oracle函数之decode

    DECODE含义

    decode(条件,1,返回值1,2,返回值2,…值n,返回值n,缺省值)
    

    这个是decode的表达式,具体的含义解释为:

    IF 条件=值1 THEN
        RETURN(翻译值1)
    ELSIF 条件=值2 THEN
        RETURN(翻译值2)
        ......
    ELSIF 条件=值n THEN
        RETURN(翻译值n)
    ELSE
        RETURN(缺省值)
    END IF
    

    DECODE的用法

    这里主要说的就是decode的用法,在很多时候这个函数还是很有用的。

    1.翻译值

    数据截图:

    需求:查询出的数据,1表示男生,2表示女生

    select t.id,
           t.name,
           t.age,
           decode(t.sex, '1', '男生', '2', '女生', '其他') as sex
      from STUDENT2 t
    

    结果:

    2.decode比较大小

    说明:sign(value)函数会根据value的值为0,正数,负数,分别返回0,1,-1
    数据:

    需求:年龄在20以上的显示20以上,20以下的显示20以下,20的显示正好20

    select t.id,
           t.name,
           t.age,
           decode(sign(t.age - 20),
                  1,
                  '20以上',
                  -1,
                  '20以下',
                  0,
                  '正好20',
                  '未知') as sex
      from STUDENT2 t
    

    结果:

    3.decode分段

    数据暂无
    需求:工资大于5000为高薪,工资介于3000到5000为中等,工资小于3000为底薪

    select name,
           sal,
           decode(sign(sal - 5000),
                  1,
                  '高薪',
                  0,
                  '高薪',
                  -1,
                  decode(sign(sal - 3000), 1, '中等', 0, '中等', -1, '低薪')) as salname
      from person;
    
    

    4.搜索字符串

    数据:

    需求:找到含有三的姓名

    select t.id,
           decode(instr(t.name, '三'), 0, '姓名不含有三', '姓名含有三') as name,
           t.age,
           t.sex
      from STUDENT2 t
    

    结果:

    5.判断是否为空

    数据:

    需求:性别为空显示“暂无数据”,不为空原样输出

    select t.id,
           t.name,
           t.age,
           decode(t.sex,NULL,'暂无数据',t.sex) as sex
      from STUDENT2 t
    

    结果:


    转载自:https://blog.csdn.net/sdut406/article/details/82795585

  • 相关阅读:
    hadoop再次集群搭建(3)-如何选择相应的hadoop版本
    48. Rotate Image
    352. Data Stream as Disjoint Interval
    163. Missing Ranges
    228. Summary Ranges
    147. Insertion Sort List
    324. Wiggle Sort II
    215. Kth Largest Element in an Array
    快速排序
    280. Wiggle Sort
  • 原文地址:https://www.cnblogs.com/DiZhang/p/12544770.html
Copyright © 2011-2022 走看看