字符函数:
控制大小写:
LOWER('SQL Course')
|
sql course
|
UPPER('SQL Course')
|
SQL COURSE
|
INITCAP('SQL Course')
|
Sql Course
|
字符控制:
CONCAT(‘Hello’, ‘World’)
字符相加
|
HelloWorld
|
SUBSTR(‘HelloWorld’,1,5)
显
示几个字符
|
Hello
|
LENGTH(‘HelloWorld’)
求
长
度
|
10
|
INSTR(‘HelloWorld’, ‘W’)
查
看字符第一次出
现
的位置
|
6
|
LPAD(salary,10,‘*’)
左
补齐
|
*****24000
|
RPAD(salary, 10, ‘*’)
右
补齐
|
24000*****
|
TRIM(‘H’ FROM ‘HelloWorld’)
剪切首个出
现
的字母
|
elloWorld
|
数字函数:
ROUND(45.926, 2)
四舍五入
|
45.93
|
TRUNC(45.926, 2)
截断
|
45. 92
|
MOD(1600, 300)
求余
|
100
|
日期函数:
MONTHS_BETWEEN ('01-SEP-95','11-JAN-94')
|
19.6774194
|
ADD_MONTHS ('11-JAN-94',6)
|
'11-JUL-94'
|
NEXT_DAY ('01-SEP-95','FRIDAY')
|
'08-SEP-95'
|
LAST_DAY('01-FEB-95')
|
'28-FEB-95'
|
Assume SYSDATE = '25-JUL-95':
| |
ROUND(SYSDATE,'MONTH')
|
01-AUG-95
|
ROUND(SYSDATE ,'YEAR')
|
01-JAN-96
|
TRUNC(SYSDATE ,'MONTH')
|
01-JUL-95
|
TRUNC(SYSDATE ,'YEAR')
|
01-JAN-95
|
转换函数:
TO_CHAR(date, 'format_model')
YYYY
|
2004
|
YEAR
|
TWO THOUSAND AND FOUR
|
MM
|
02
|
MONTH
|
JULY
|
MON
|
JUL
|
DY
|
MON
|
DAY
|
MONDAY
|
DD
|
02
|
TO_CHAR(number, 'format_model')
9
|
数字
|
0
|
零
|
$
|
美元符
|
L
|
本地货币符号
|
.
|
小数点
|
,
|
千位符
|
使用
TO_NUMBER
函数将字符转换成数字
:
TO_NUMBER(char[, 'format_model'])
使用
TO_DATE
函数将字符转换成日期
:
TO_DATE(char[, 'format_model'])
通用函数:
NVL (expr1, expr2)
|
如果
expr1
非空
,
返回
expr1
,否则返回
expr2
。
|
NVL2 (expr1, expr2, expr3)
|
如果
expr1
非空
,
返回
expr2
,否则返回
expr3
。
|
NULLIF (expr1, expr2)
|
如果
expr1
和
expr2
相等
,
返回空,否则返回
expr1
。
|
COALESCE (expr1, expr2, ..., exprn)
|
如果第一个表达式非空
,
则返回这个表达式,对其他的参数进行
COALESCE
。(即从
expr1
依次开始,直到找到一个不为空的表达式返回。)
|
条件表达式:CASE 表达式和DECODE 函数(二者应用各有侧重,参考我的另一篇关于二者比较的专题)
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的一个变种)
CASE
WHEN comparison_expr1 THEN return_expr1
[WHEN comparison_expr2 THEN return_expr2
WHEN comparison_exprn THEN return_exprn
ELSE else_expr]
END
DECODE(col|expression, search1, result1
[, search2, result2,...,]
[, searchn, resultn,...,]
[, default])