1.字符操作
chr(65) 即’A’里面的数字可参照Ascll码
concat()拼接字符串
length()返回字符串长度
lower()字符串转小写
Itrim(x,y)截掉x中的y中的字符
lpad(‘hello’,e,’*’)左填充
initcap();将每个字符串的首字母大写
instr(str,substr)查询substr在str中首次出现位置
rpad(‘hello’,10,’*’)又填充
replace(‘hello’,‘l’,’*’)将l换成 *
substr(ename , 5,[len])从第5个开始截取,并包括第5个(从一开始数)
to_char(日期,格式)把日期和数字转换成字符串
to_char(sysdate,‘yyyy-mm-dd’)
trim(‘x’ from ‘xxhello worldxx’)去掉x字符
upper()字符串转大写
注意事项:1.字符串拼接用 ||
2.使用时字符类型要加 ’ ’
2.数字
1.取模 mod(y,x)返回y/x的余数,若x为0返回y
2.四舍五入 round(x,[y])保留y位小数
3.截掉数字 trunc(x,[y])保留y位
4.把字符串转换成数字 to_number();
3.日期
日期可以相互减
日期±数字为天数
months_between(日期1,日期2)日期1-日期2的月数
1.to_date()把字符串转换成日期
extract(year from hiredate)截取年份
round(sysdate,‘month’)对当月天数四舍五入
round(sysdate,‘year’)对当年月数四舍五入
add_months(sysdate,3)当前时间加3月
last_day(sysdate)当月最后一天
next_day(sysdate,‘星期一’)下一个星期一的日期
通用函数
nvl(comm,0)若comm为null返回0
nvl2(comm,1,0)若comm为null返回0否则返回1
nullif(a,b)若a=b返回null,否则返回a
decode(字段,条件1,返回值1,条件2,返回值2,…,其他情况的返回值)
select ename ,job,sal 涨前,decode(job,'PRESIDENT',SAL+1000,'MANAGER',SAL+500,SAL+300) 涨后 from emp;
case表达式:select ename job ,sal 涨前 ,case job when 'PRESIDENT' then SAL+1000 when 'MANAGER' then SAL+500 else SAL+300 end 涨后 from emp;
coalesce():从左往右找到第一个不为null的值
select comm sal ,coalesce(comm,sal) from emp;
字符转换表
格式 | 简介 |
---|---|
9 | 一位数字 |
0 | 0 |
$ | 美元符号 |
L | 本地货币符号¥ |
. | 小数点 |
, | 千位分割符 |
select to_number('¥123,456.7','L999,999.9') from dual;