除了直接对数字格式化,也可以进行货币的显示
SELECT TO_CHAR(987654321.789,'L999,999,999,999.9999') 显示货币, TO_CHAR(987654321.789,'$999,999,999,999.9999') 显示美元 FROM dual;在开发之中,TO_CHAR() 函数的作用还是非常明显的!建议掌握!
6.5.2 TO_DATE() 函数这个函数主要是将字符串变为日期型数据,而改变的过程里面依然需要之前 TO_CHAR() 函数出现的相关标记。
范例:转换时间显示
SELECT TO_DATE('1979-09-19','YYYY-MM-DD') FROM dual;在之前讲解日期函数时使用了一个 TO_TIMESTAMP() 函数,这个函数是将字符串变为时间戳。
范例:时间戳转换
SELECT TO_TIMESTAMP('1981-09-27 18:07:10','YYYY-MM-DD HH24:MI:SS') datetime FROM dual; 6.5.3 TO_NUMBER() 函数作用是将字符串变为数字
范例:将字符串变为数字
SELECT TO_NUMBER('09') + TO_NUMBER('19') 加法操作, TO_NUMBER('09') * TO_NUMBER('19') 乘法操作 FROM dual;但是在之前强调过,Oracle 里面支持数据类型的自动转型操作,上面的代码也可写为
SELECT '09' + '19' 加法操作, '09' * '19' 乘法操作 FROM dual; 6.6、通用函数这些函数是 Oracle 数据库的特色,对于这些函数了解有一定的好处。
No.函数名称描述1 NVL(数字|列 , 默认值) 如果显示的数字是null的话,则使用默认数值表示
2 NVL2(数字|列,返回结果一(不为空显示),返回结果二(为空显示)) 判断指定的列是否是null,如果不为null则返回结果一,为空则返回结果二
3 NULLIF(表达式一,表达式二) 比较表达式一和表达式二的结果是否相等,如果相等返回NULL,如果不相等返回表达式一
4 DECODE(列|值,判断值1,显示结果1,判断值2,显示结果2,...,默认值) 多值判断,如果某一个列(或一个值)与判断值相同,则使用指定的显示结果输出,如果没有满足条件,在显示默认值
5 CASE 列|数值 WHEN 表达式1 THEN 显示结果1 ... ELSE 表达式N ... END 用于实现多条件判断,在WHEN之后编写条件,而在THEN之后编写条件满足的显示操作,如果都不满足则使用ELSE 中的表达式处理
6 COALESCE(表达式1,表达式2,...表达式n) 将表达式逐个判断,如果表达式1的内容是null,则显示表达式2,如果表达式2的内容是null,则显示表达式3,依次类推,如果表达式n的结果还是null,则返回null
对于通用函数而言,只有两个核心函数:NVL() , DECODE()
6.6.1 使用 NVL() 函数处理 null在数据库之中,null 是无法进行计算的,即,在一个数学计算之中如果存在了 null,则最后的结果也肯定是 null
范例:查询出每个雇员的编号、姓名、职位、雇佣日期、年薪
对于年薪最准确的做法是应该计算 “sal + comm”,可是这个时候 comm 列上是存在了 null 数据的
SELECT empno,ename,job,hiredate,(sal+comm)*12 年薪,sal,comm FROM emp;因为 comm 上的内容有的是 null,而现在发现,只要是 comm 为 null 的计算,最终的结果就是 null ,所以在这种情况下需要针对于 null 进行处理,肯定将 null 变为0才合适
范例:验证 NVL()
SELECT NVL(null,0),NVL(3,0) FROM dual;这个时候发现如果为 null,那么就将其变为了0,如果不是 null,就继续使用指定的数值
SELECT empno,ename,job,hiredate,(sal+NVL(comm,0))*12 年薪,sal,comm FROM emp; 6.6.2 NVL2() 函数NVL2() 函数是在 Oracle 9i 之后增加的一个新的功能函数,相比较 NVL() 函数,NVL2() 函数可以同时对为 null 或不为 null 进行分别判断并返回不同的结果
范例:查询每个雇员的编号、姓名、年薪(sal + comm)、基本工资、奖金
SELECT empno,ename,job,hiredate,NVL2(comm,sal+comm,sal),sal,comm FROM emp; 6.6.3 NULLIF() 函数NULLIF(表达式一,表达式二) 函数的主要功能是判断两个表达式的结果是否相等,如果相等则返回 NULL ,不相等则返回表达式一
范例:验证 NULLIF() 函数
SELECT NULLIF(1,1),NULLIF(1,2) FROM dual;范例:查询雇员编号、姓名、职位,比较姓名和职位的长度
SELECT empno,ename,job,LENGTH(ename),LENGTH(job),NULLIF(LENGTH(ename),LENGTH(job)) nullif FROM emp; 6.6.4 DECODE() 函数