Oracle decode函数

  1. 启动oralce 数据库 ,用plsqldev登录,数据库中有emp_test表并有三条记录,如下:

    oracle decode函数使用方法

  2. 2

    decode函数的最常见的用法是枚举值值转换。上一步我们已经看到,emp_test表中的性别字段sex用0和1表示,但是我们的查询结果要显示为男和女,decode函数就可以帮我们转转换,具体的语法如下:

     

    select et.id,et.name,decode(et.sex,1,'男',0,'女') as sex from emp_test et;

     

    decode(et.sex,1,'男',0,'女') 的含义是:如果sex字段的值为1,decode函数的返回值就是‘男’,如果为0,decode函数的返回值就是‘女’。

    oracle decode函数使用方法

  3. 3

    decode函数的另一个用法是结合sign函数使用来比较大小。sign(value)函数会根据value的值为0,正数,负数,分别返回0,1,-1。比如

     

    select et.id,et.name,decode(sign(et.age - 45) ,0,'中年',1,'老年','-1','青年') as sex from emp_test et;

     

    decode(sign(et.age - 45) ,0,'中年',1,'老年','-1','青年')的含义就是:如果sign函数返回值为0,那么decode函数的返回值就是'中年',如果sign函数返回值为1,decode函数的返回值就是'老年',如果sign函数返回值为-1,decode函数的返回值就是'青年'。

    oracle decode函数使用方法

  4. 4

    decode函数的另一个用法是判断字段是否为空。比如:

     

    select et.id,et.name,decode(et.sex,null,'性别为空',1,'男',0,'女') as sex,et.age from emp_test et;

     

    decode(et.sex,null,'性别为空',1,'男',0,'女') 的含义是:如果sex字段的值为null,那么decode函数的返回值就是'性别为空',如果sex字段的值为1,decode函数的返回值就是‘男’,如果为0,decode函数的返回值就是‘女’。

    oracle decode函数使用方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值