Oracle单行函数
(1)通用函数(NVL,NVL2,NULLIF,COALESCE)
(2)NVL函数
NVL(eExpression1, eExpression2)
如果 eExpression1 的计算结果为 null 值,则 NVL( ) 返回 eExpression2。如果 eExpression1 的计算结果不是 null 值,则返回 eExpression1。eExpression1 和 eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2 的结果皆为 null 值,则 NVL( ) 返回 .NULL.。
(3)NVL2函数
NVL(eExpression1, eExpression2, eExpression3)
nvl2函数的是nvl函数的拓展,意思是eExpression1为null,就返回eExpression3,不为null就返回eExpression2。
(4)NULLIF函数
Oracle NULLIF函数语法为NULLIF(表达式1,表达式2),如果表达式1和表达式2相等则返回空值,如果表达式1和表达式2不相等则返回表达式1的结果。
注意:表达式1和表达式2应该是相同数据类型或能隐含转换成相同数据类型,表达式1不能用字符null。
(5)COALESCE函数
COALESCE(expr1, expr2…exprn)
当判断expr1不为空时,就返回expr1,判断expr1为空时,就返回expr2。 必须指定最少两个参数。如果所有的参数都是null,则返回null。
(6)CASE 表达式
(1)CASE表达式可以让你可以在SQL中使用类似于if… then…else的逻辑而不需要调用程序
SELECT last_name, job_id, salary,
CASE job_id WHEN 'IT_PROG' THEN 1.10*salary
WHEN 'ST_CLERK' THEN 1.15*salary
WHEN 'SA_REP' THEN 1.20*salary
ELSE salary END "REVISED_SALARY"
FROM employees;
(7)大小写控制函数(UPPER,LOWER,INITCAP)
这类函数改变字符的大小写。
• UPPER():所有字母转换为大写
• LOWER():所有字母转换为小写
• INITCAP():所有单词首字母与转换为大写
• 数字函数(ROUND)
(8)ROUND 函数
• 描述 : 传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果。SELECT ROUND( number, [decimal_places ] ) FROM DUAL,参数:number : 欲处理之数值,decimal_places : 四舍五入 , 小数取几位 ( 预设为 0 )
(8) TRUNC 函数
- 用来处理日期: TRUNC(date,[fmt]): 根据fmt格式来截取日期
- 用来处理数值:TRUNC(n1, n2): 用来根据n2截取n1并返回结果,n2可省略。截取数值是不进行四舍五入。
(9) MOD 函数/取余函数
该函数的的规则是:返回m/n的余数,如果 n 为 0,则返回 m
(10)转换函数(显性)(TO_CHAR,TO_DATE,TO_NUMBER)
(11)TO_CHAR函数
(1)对日期的转换
to_char(日期,“转换格式” ) 即把给定的日期按照“转换格式”转换。
日期格式的元素:
时间格式:HH:MI:SS
使用双引号向日期中添加字符:DD ‘‘of’’ MONTH
SELECT last_name,
TO_CHAR(hire_date, ‘DD Month YYYY’) AS HIREDATE
FROM employees;
(2)对数字的转换
这个函数用来将DATE或NUMBER数据类型转换成可显示的字符串,格式是to_char(number_type, format_mask)。
格式’999.99’,9表示对应的某一个指定位数的值,如果是值是0则忽略不显示,如果指定位数没有值,则以空格表示。
格式’0990.990’,0表示对应的某一个指定位数的值,如果是值是0则显示为0,如果是没有值也显示为0。
格式’FM990.90’,FM表示将显示出来的字符串定位数没有值而显示的空格清理掉,作用和ltrim类似。
SELECT TO_CHAR( 00.0001, ‘FM99990.0099’ ) price FROM dual; --输出0.0001
SELECT TO_CHAR( 1001.000, ‘FM99990.0099’ ) price FROM dual; --输出1001.00、
(12)TO_DATE 函数对字符的转换
to_date(“要转换的字符串”,“转换的格式”) 两个参数的格式必须匹配,否则会报错。
(13)TO_NUMBER 函数对字符的转换