1、转换函数就是完成oracle数据库类型之间的转换一、转换函数分为三种to_charto_numberto_date1。to_char('sysdate','yyyy-mm-dd hh24:mi:ss')将日期转换为字符串
2、还有一种方式是使用to_char函数将数字转换为字符串to_char(number,'L999,999.99') L代表货币符号 ,代表千位数分隔符 . 代表小数位分隔符
3、2。将字符串转换为数字 to_number(str);
4、3。将字符串变为日期to_date('str');
5、二、通用函数nvl()nvl2()nullif()1。nvl(expt1,expt2)这个脑栲葱蛸函数的作用是如果字段expt1的值为空则返回第二个expt2的值,如果expt1不为空则直接返回expt1的值。主要 是用在查询数据库中为空的字段比如在计算年薪的时候,销售有提成,普通雇员没有提成,如果按照普通 的方式进行计算的时候,我们会发现没有提成的雇员的年薪为空(任何值+null都为空)
6、现在使用nvl()函数对空值进行转换,转换之后发现所有雇员的年薪都已经算出来了
7、2。nvl2(expt1,expt2,expt3)这个函数的作用是如果表达式1为空则返回expt3,如果不为空则返回expt2 看下面的图可以清楚看到 如果奖金为空 则直接把第三个参数赋值给它,如果不为空仍然使用默认值
8、3。nullif(expt1,expt2)这个函数的作用是如果expt1与expt2相等则返回空,如果不相等则返回expt1(相同与相等是不一样的,相同是不中内容相同而且类型也要相同)
9、4。coalesce (expt1,expt2,expt3.....)参数至少要有两个个 这个函数的作用是返回第一个不为空的表达式,如果全部为空则返回空值,但注意一点:所有表达式必须为同一数据类型。查询出所有雇员的奖金,如果奖金为空则赋值为第二个参数
10、如果第一个参数不为空 则赋值第二个参数,如果第二个参数也为空 则赋值第三个参数,以此类推直接找到不为空的值
11、5。case expt1 when expt1 then expt1 when expt2 then expt2 else expt4 end 别名;这个可以称为墩伛荨矧通用函数中的流程控制语句 ,作用是当expt1的值为expt1时返回expt1,当expt1的值为expt2时返回expt2 end代表语句结束 后面的别名 相当于这一整条语句的别名示例:现在需要查询出job_id为AD_ASST为雇员 让他们的工资 乘以1.2 job_id为MK_REP的乘以2 其他雇员工资不变,select first_name,salary,job_id, case job_id when 'AD_ASST' then salary*1.5 when 'MK_REP' then salary*2 else salary end re_salary from employees;
12、6。decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)select first_name,salary,job_id,decode(job_id,'AD_ASST',salary*1.2,'MK_REP',salary*2,salary) re_salary from employees;其实这种方式和5中的方式结果一样,只不过这种方式显示更为直观一点,语句不会太长。