decode函数的用法

这个时候,笔者思考一个问题,OracleDecode函数如何确定返回值类型列呢?SQL>selectdecode(num,-1,d,num),numfromt;DECODE(NUM,-1,D,NUM)NUM\\————————————————00.00.60.6011.00SQL>selectdecode(num,-1,k,num),to_char(num)fromt;DECODE(NUM,-1,K,NUM)TO_CHAR(NUM)\\——————————————————————————–00.6.611上面的实验,让我们得出了和null值是相同的效果。

如果base_exp与任何的compare值都不匹配,则返回default。

,”

SQL>select*fromcjd;SID语文数学英语\\—————————————-1800020900300100,**decode函数**主要作用:将查询结果翻译成其他值(即以其他形式变现出来)**使用方法:**SELECTDECODE(colunm_name,值1,翻译值1,值2,翻译值2……值n,翻译值n,缺省值)FROMtablename;**解释:**if(条件==值1)thenreturn(翻译值1)elsif(条件==值2)thenreturn(翻译值2)…….elsif(条件==值n)thenreturn(翻译值n)elsereturn(缺省值)endif**注:**其中缺省值可以是你要选择的columnname本身,也可以是你想定义的其他值,比如Other等;SELECTa.job_id,a.job_title,a.min_salary,DECODE(a.min_salary,10000,一万,6000,六千,Other)min_chinese,a.max_salaryFROMHR.JOBSa;只与一个值比较SELECTDECODE(a.min_salary,NULL,—,a.min_salary)min_salaryFROMHR.JOBSa;**另外:**decode中可使用其他函数,如nvl函数或sign函数等。

我们从《Oracle8i/9iReference》资料中了解到,当用户登录成功后在V$SESSION中就有该用户的相应记录,但用户所进行的命令操作在该视图中只记录命令的代码(0—没有任何操作,2—Insert…),而不是具体的命令关键字。