oracle 转换函数以及表达式
oracle 转换函数以及表达式
1.主要内容:
- oracle中的各种转换函数
- TO_CHAR,TO_NUMBER和TO_DATE转换函数的使用
2.隐式和显式数据类型转换
- TO_CHAR, TO_DATE, TO_NUMBER 函数
- 通用函数:
- –NVL
- NVL2
- NULLIF
- COALESCE
- DECODE
- 条件表达式:
- case
1.转换函数:
TO_CHAR函数
-
TO_CHAR(date[,'format_model'])
-
格式
- 单引号引
- 区分大小写
- 可以包含任何有效的日期格式元素
- 使用fm元素以删除填充的空格或抑制前导零
-
模型元素
| Element | 解释 |
|---|---|
| YYYY | 数值型全年份(2020) |
| YEAR | 英语拼写年份 |
| MM | 数值日期两位数 |
| MONTH | 月份名称 |
| MON | 月份三个字母缩写 |
| DY | 星期 |
| DAY | 星期全名 |
| DD | 数值型天数 |
- 时间元素格式化日期的时间部分:
- HH24:MI:SS AM 15:45:32 PM
- 通过将字符串括在双引号中来添加字符串
- day "of" month
TO_CHAR函数与数字一起使用
- TO_CHAR(number[, 'format_model'])
| 元素 | 解释 |
|---|---|
| 9 | 替换为一个数字 |
| 0 | 强制替换0 |
| $ | 美元符号 |
| L | 本地货币符号 |
| . | 小数点 |
| , | 逗号 |
TO_NUMBER函数
- TO_NUMBER(char[, 'format_model'])
TO_DATE函数
- TO_DATE(char[, 'format_model'])
2.通用函数
数据可以是字符,数字和日期
NVL函数
- NVL (expr1, expr2) 二元表达式,当expr1为空,则取expr2
NVL2函数
- NVL2(expr1,expr2, expr3)当expr1不为空,取expr2,为空取expr3
NULLIF
- NULLIF(expr1,expr2),expr1和expr2相等为空,不相等为expr1
COALESCE
- COALESCE(expr1,expr2, ..., exprn),第一个不为空,则返回,依次类推
3.条件表达式
-
CASE WHEN(两种使用语法)
- CASE expr WHEN comparison_expr1 THEN return_expr1
[WHEN comparison_expr2 THEN return_expr2
WHEN comparison_exprn THEN return_exprn
ELSE else_expr]
END
-
CASE
WHEN condition1 THEN use_expression1
WHEN condition2 THEN use_expression2
WHEN condition3 THEN use_expression3
ELSE default_use_expression
END
-
DECODE函数
DECODE(col|expression**, search1, result1[, search2, result2,...,] [, default])
-
实例:
DECODE(job_id, 'IT_PROG', 1.10*salary,
'ST_CLERK', 1.15*salary,
'SA_REP', 1.20*salary,
salary)
-
区别:case是表达式,decode是函数,decode能做的,case一定可以替代,case更强大,case可以作为子查询使用

浙公网安备 33010602011771号