大家好,小城来为大家解答以上问题。decode函数的用法,decode函数很多人还不知道,现在让我们一起来看看吧!
1、启动oralce 数据库 ,用plsqldev登录,数据库中有emp_test表并有三条记录,如下:
2、decode函数的最常见的用法是枚举值婶肤值转换。上一步我们已经看到,emp_test表中的性别字段sex用0和1表示,但是我们的查询结果要显示为男和女,decode函数就可以帮我们转转换,具体的语法如下:
3、select et.id,et.name,decode(et.sex,1,'男',0,'女') as sex from emp_test et;
4、decode(et.sex,1,'男',0,'女') 的含义是:如果sex字段的值为1,decode函数的返回值就是‘男’,如果为0,decode函数的返回值就是‘女’。
5、decode函数的另一个用法是结栗码合sign函数使用来比较大小。sign(value)函数会根据value的值为0,正数,负数,分别返回0,1,-1。比如
6、select et.id,et.name,decode(sign(et.age - 45) ,0,'中年',1,'老年','-1','青年') as sex from emp_test et;
7、decode(sign(et.age - 45) ,0,'中年',1,'老年','-1','青年')的含义就是:如果sign函数返回值为0,那么decode函数的返回值就是'中年',如果sign函数返回值岔良贪为1,decode函数的返回值就是'老年',如果sign函数返回值为-1,decode函数的返回值就是'青年'。
8、decode函数的另一个用法是判断字段是否为空。比如:
9、select et.id,et.name,decode(et.sex,null,'性别为空',1,'男',0,'女') as sex,et.age from emp_test et;
10、decode(et.sex,null,'性别为空',1,'男',0,'女') 的含义是:如果sex字段的值为null,那么decode函数的返回值就是'性别为空',如果sex字段的值为1,decode函数的返回值就是‘男’,如果为0,decode函数的返回值就是‘女’。
本文到此结束,希望对大家有所帮助。