字符函数:
lower('') 字母小写
upper('') 字母大写
initcap('') 每个单词首字母大写
concat('','') 字符串拼接
substr('',a,b) 截取从a开始的b个字符(b不填表示到字符串末尾,第一个字符计数为1,不为0)
length('') 字符串长度
instr('abc','a') 字符a在字符串"abc"中第一次出现的位置,没有找到返回0
lpad('abc',n,'*') 左填充 如果字符串长度小于n,字符串左边用'*'补齐到n位 如果长度大于n,则取前n位
rpad('abc',n,'*') 右填充 参见lpad
trim('') 去掉前后空格(trim('a' from 'abc')表示去掉a 返回'bc')
数字函数:
round(a,b) 四舍五入如果b>0 表示小数点后保留b位, b=0 保留到个位 b<0 保留到10*(-b)位 如round(1234.567,-2)= 1200
trunc(a,b) 只舍不入(例如 trunc(1234.567, 1)=1234.5 ) b的说明参见round
mod(a,b) 取模 返回 a % b
日期函数:
MONTHS_BETWEEN('','') 返回两个日期相差天数
ADD_MONTHS ('',a) 返回日期加上a天后的日期
NEXT_DAY ('','FRIDAY') 返回下一个周五的日期
NEXT_DAY ('',1) 返回下一个周日的日期(1表示周的第一天)
LAST_DAY('') 返回该日期所在月的最后一天的日期
ROUND('','') 返回该日期按month或者year四舍五入之后的日期 第二个参数填month或者year
TRUNC('' ,'') 只舍不入,参见round('','')
日期转换为字符串:
to_char(date,'')
YYYY 4位数字表示的年份
YEAR 英文描述的年份
MM 2位数字表示的月份
MONTH 英文描述的月份
MON 三个字母的英文描述月份简称
DD 2位数字表示的日期
DAY 英文描述的星期几
DY 三个字母的英文描述的星期几简称
HH24:MI:SS AM 时分秒的格式化
DDspth 英文描述的月中第几天
fm 格式化关键字,可选
数字转换为字符串:
to_char(number,'')
9 表示一个数字
0 强制显示0
$ 放一个美元占位符
L 使用浮点本地币种符号
. 显示一个小数点占位符
, 显示一个千分位占位符
字符串转换为数字:
to_number('') 纯数字字符串转换为数字(可带小数点)
to_number('','') 根据第二个参数格式转换为数字
eg: to_number('$123,456,789','$9,999,999,999') 格式字符串要条件要略宽于要转换的字符串,否则转换失败
字符串转换为日期
to_date('','') 根据参数二的格式讲字符串转换为date类型,参数二中尽量不要使用RR
逻辑判断函数:
case函数:
eg:
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
AS "REVISED_SALARY"
FROM employees;
decode函数:
SELECT last_name, job_id, salary,
DECODE(job_id,
'IT_P ROG', 1.10*salary,
'ST_CLERK', 1.15*salary,
'SA_REP', 1.20*salary,
salary)
AS "REVISED_SALARY"
FROM employees;
nvl(expr1,expr2) 若expr1为空则返回expr2
nvl2(expr1,expr2,expr3) 若expr1为空则返回expr3否则返回expr2
nullif(expr1,expr2) 相等返回NULL
coalesce(expr1,expr2..) 返回第一个不为NULL的值,如果全为NULL,则返回NULL
lower('') 字母小写
upper('') 字母大写
initcap('') 每个单词首字母大写
concat('','') 字符串拼接
substr('',a,b) 截取从a开始的b个字符(b不填表示到字符串末尾,第一个字符计数为1,不为0)
length('') 字符串长度
instr('abc','a') 字符a在字符串"abc"中第一次出现的位置,没有找到返回0
lpad('abc',n,'*') 左填充 如果字符串长度小于n,字符串左边用'*'补齐到n位 如果长度大于n,则取前n位
rpad('abc',n,'*') 右填充 参见lpad
trim('') 去掉前后空格(trim('a' from 'abc')表示去掉a 返回'bc')
数字函数:
round(a,b) 四舍五入如果b>0 表示小数点后保留b位, b=0 保留到个位 b<0 保留到10*(-b)位 如round(1234.567,-2)= 1200
trunc(a,b) 只舍不入(例如 trunc(1234.567, 1)=1234.5 ) b的说明参见round
mod(a,b) 取模 返回 a % b
日期函数:
MONTHS_BETWEEN('','') 返回两个日期相差天数
ADD_MONTHS ('',a) 返回日期加上a天后的日期
NEXT_DAY ('','FRIDAY') 返回下一个周五的日期
NEXT_DAY ('',1) 返回下一个周日的日期(1表示周的第一天)
LAST_DAY('') 返回该日期所在月的最后一天的日期
ROUND('','') 返回该日期按month或者year四舍五入之后的日期 第二个参数填month或者year
TRUNC('' ,'') 只舍不入,参见round('','')
日期转换为字符串:
to_char(date,'')
YYYY 4位数字表示的年份
YEAR 英文描述的年份
MM 2位数字表示的月份
MONTH 英文描述的月份
MON 三个字母的英文描述月份简称
DD 2位数字表示的日期
DAY 英文描述的星期几
DY 三个字母的英文描述的星期几简称
HH24:MI:SS AM 时分秒的格式化
DDspth 英文描述的月中第几天
fm 格式化关键字,可选
数字转换为字符串:
to_char(number,'')
9 表示一个数字
0 强制显示0
$ 放一个美元占位符
L 使用浮点本地币种符号
. 显示一个小数点占位符
, 显示一个千分位占位符
字符串转换为数字:
to_number('') 纯数字字符串转换为数字(可带小数点)
to_number('','') 根据第二个参数格式转换为数字
eg: to_number('$123,456,789','$9,999,999,999') 格式字符串要条件要略宽于要转换的字符串,否则转换失败
字符串转换为日期
to_date('','') 根据参数二的格式讲字符串转换为date类型,参数二中尽量不要使用RR
逻辑判断函数:
case函数:
eg:
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
AS "REVISED_SALARY"
FROM employees;
decode函数:
SELECT last_name, job_id, salary,
DECODE(job_id,
'IT_P ROG', 1.10*salary,
'ST_CLERK', 1.15*salary,
'SA_REP', 1.20*salary,
salary)
AS "REVISED_SALARY"
FROM employees;
nvl(expr1,expr2) 若expr1为空则返回expr2
nvl2(expr1,expr2,expr3) 若expr1为空则返回expr3否则返回expr2
nullif(expr1,expr2) 相等返回NULL
coalesce(expr1,expr2..) 返回第一个不为NULL的值,如果全为NULL,则返回NULL