多语言展示
当前在线:481今日阅读:176今日分享:34

oracle转换函数与通用函数

oracle转换函数与通用函数
工具/原料
1

centos7

2

oracle11g、 secureCRT

方法/步骤
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中的方式结果一样,只不过这种方式显示更为直观一点,语句不会太长。

注意事项

此经验由勇敢的choy原创,觉得此经验对你有帮助,请点击下面【投票】予以支持,也可以点击上面的【五角星】来收藏!

推荐信息