-
启动oralce 数据库 ,用plsqldev登录,数据库中有emp_test表并有三条记录,如下:
-
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函数的返回值就是‘女’。
-
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函数的返回值就是'青年'。
-
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函数
最新推荐文章于 2024-08-23 11:29:42 发布