1、DECODE(expr,search1,result1,search2,result2,default) 如果expr=search 返回result否则返回default
select empno,ename,DECODE(JOB,'CLERK','AA','SALESMAN','BB','MANAGER','CC','PRESIDENT','DD','未知') tt
from scott.emp;
该函数在与聚合函数使用的效果很好
2、DUMP(expr,result_fmt,start_position,length)返回字符串的长度,类型,内部编码信息等
expr:这个参数是要进行分析的表达式(数字或字符串等,可以是各个类型的值)
return_fmt:指返回参数的格式,这个参数有5种用法
1) 8:以8进制返回结果的值
2) 10:以10进制返回结果的值(默认)
3) 16:以16进制返回结果的值
4) 17:以单字符的形式返回结果的值
5) 1000:以上4种加上1000,表示在返回值中加上当前字符集
start_position:开始进行返回的字符位置
length:需要返回的字符长度
select DUMP('Hello张三',16) a1 from dual;
3、ORA_HASH(expr,max_bucket,seed_value)计算字符串的hash值
select empno,ename,ORA_HASH(JOB,10000,1) a1,JOB from scott.emp order by 3;
4、VSIZE(expr) 返回字符串的字节数,不支持CLOB
select empno,ename,VSIZE(ename) a1,VSIZE('张三') a2 from scott.emp