pre { font-family: "DejaVu Sans"; }td p { margin-bottom: 0cm; }p { margin-bottom: 0.21cm; }
Oracle 一. 单行函数 1.操作数据对象 2.接受参数返回一个结果 3.只对一行进行变换 4.可以转换数据类型 5.可以嵌套 6.参数可以是一列或一个值 二. 字符函数 1.大小写控制函数 a.LOWER LOWER('SQL Course') ---- 结果 ---sql course b.UPPER UPPER('SQL Course') ---- 结果 ---SQL COURSE c.INITCAP INITCAP('SQL Course') ---- 结果 ---Sql Course 2.字符控制函数 a.CONCAT CONCAT('Hello','World') ----- 结果 ----HelloWorld b.SUBSTR SUBSTR('HelloWorld',1,5) ---- 结果 ---Hello c.LENGTH LENGTH('HelloWorld') ---- 结果 ---10 d.INSTR INSTR('HelloWorld','W') ---- 结果 ---6 e.LPAD | RPAD LPAD(salary,10,'*') ---- 结果 ---*****24000 RPAD(salary,10,'*') ---- 结果 ---24000***** f.TRIM TRIM('H' FROM 'HelloWorld') ----结果----elloWorld 三. 数字函数 1.ROUND:四舍五入 ROUND(45.926,2)----结果----45.93 2.TRUNC: 截断 TRUNC(45.926,2)----结果----45.92 3.MOD:求余 MOD(12,5)----结果----2 四. 日期函数 1.函数SYSDATE返回: a.日期 b.时间 2.日期的数学运算 a.在日期上加上或减去一个数字结果仍是日期 b.两个日期相减返回日期之间相差的天数 c.可以用数字除24来向日期中加上或减去小时 3.MONTHS_BETWEEN : 两个日期相差的月数 MONTHS_BETWEEN('01-SEP-95','11-JAN-94')----结果----19.6774194 4.ADD_MONTHS : 向指定的日期中加上若干月数 ADD_MONTHS('11-JAN-94',6)----结果----'11-JUL-94' 5.NEXT_DAY : 指定日期的下一个日期 NEXT_DAY('01-SEP-95','FRIDAY')----结果----'08-SEP-95' 6.LAST_DAY : 本月的最后一天 LAST_DAY('01-FEB-95')----结果----‘28-FEB--95’ 7.ROUND : 日期四舍五入 8.TRUNC : 日期截断 Assume SYSDATE = '25-JUL-95': ROUND(SYSDATE,'MONTH')----结果----'01-AUG-95' ROUND(SYSDATE,'YEAR')----结果----'01-JAN-95' TRUNC(SYSDATE,'MONTH')----结果----'01-JUL-95' TRUNC(SYSDATE,'YEAR')----结果----'01-JAN-95'
五. 转换函数
1. 隐式转换 a.
-
源数据类型
目标数据类型
VARCHAR2 or CHAR
NUMBER
VARCHAR2 or CHAR
DATE
NUMBER
VARCHAR2
DATE
VARCHAR2
2. 显示转换 a.TO_CHAR 函数对日期的转换 TO_CHAR(date, 'format_model') 格式:必须包含在单引号中且大小写敏感 可以包含任意有效的日期格式 日期之间用逗号隔开 to_char(SYSDATE, 'yyyy-mm-dd hh:mi:ss day') b.TO_CHAR 函数对数字的转换 TO_CHAR(number, 'format_model')
-
9
数字
0
零
$
美元符
L
本地货币符号
.
小数点
,
千位符
c.TO_NUMBER 使用 TO_NUMBER函数将字符转换成数字 d.TO_DATE 使用TO_DATE 函数将字符转换成日期 六. 通用函数 这些函数使用于任何数据类型,同时也适用于空值 1.NVL(expr1, expr2)
a. 可以使用的数据类型有日期,字符,数字
b. 函数的一般形式:
nvl(commission_pct, 0) 如果值为空,算作0
nvl (hire_date, '01-JAN-97' )
nvl(job_id, 'No Jod Yet')
2.NVL2(expr1, expr2, expr3) a.expr1 不为null, 返回expr2;为null,返回expr3 3.NULLIF(expr1, expr2) a.相等返回NULL,不等返回expr1 4.COALESCE(expr1, expr2, ... ,exprn) a.COALESCE 与 NVL 相比的优点在于COALESCE 可以同时处理交替的多个值 b.如果第一个表达式为空,则返回下一个表达式,对其他的参数进行COALESCE。 七. 条件表达式 1. 在SQL语句中使用IF-THEN-ELSE逻辑 2.使用两种方法: a.CASE 表达式 CASE expr WHEN comparison_expr1 THEN return_expr1
[WHEN comparison_expr2 THEN return_expr2
WHEN comparison_exprn THEN return_exprn
ELSE else_expr ]
END
b.DECODE 函数
DECODE(
col|expression, search1, result1
[ , search2, result2,..., ]
[ , default ])
八. 函数嵌套
1.单行函数可以嵌套。
2. 嵌套函数的执行顺序是由内到外