1.常用函数
1)字符函数
lower
全部转为小写 select lower(‘HELLO‘) from dual; -->hello
upper 全部转为大写 select upper(‘hello‘) from dual; HELLO
concat 连接两个字符串 select concat(‘hello‘,‘world‘) from dual;--> helloworld
initcap 首字母转为大写 select initcap(‘hello‘) from dual;--> Hello
substr
在字符串str中从第m个位置开始取n个字符(位置从1开始)select substr(‘helloworld‘,2,3) from dual;--> ell
length
求长度 select length(‘hello‘) from dual;--> 5
instr 从字符串strA中找出str所在的位置(返回第找到的1个,位置从1开始) select instr(‘hello‘,‘ll‘) from dual;--> 3
lpad 把字符串str补齐到n个长度,不足就在左边加指定字符c 如果str.length>n就取str的前n个字符;select
lpad(‘hell‘,10,‘*‘)
from dual;--> ******hell
rpad 把字符串str补齐到n个长度,不足就在右边加指定字符c;如果str.length>n就取str的前n个字符(也是从前面取)select
rpad(‘hello‘,10,‘*‘) from dual; -->hello*****
trim
从str的两端去掉字符,要是指定的字符时才去掉,使用方式特殊:
例:trim(‘a‘ from ‘aaITCASTaa‘) 结果为 ‘ITCAST‘
trim(‘C‘ from ‘aaITCASTaa‘) 结果为 ‘aaITCASTaa‘ 注这里是去掉两端的!
注意:前面只能指定一个字符。
replace
例:replace(‘aaITCASTaa‘, ‘a‘, ‘=‘) 结果为 ‘==ITCAST==‘
2)数字函数
round
四舍五入,例 round(‘45.923‘, 2) 表示保存两位小数,保留的位数可以指定正、零、负数。
trunc 截断,舍掉后面的数,保留的位数可以指定正、零、负数。
mod 求余,如 mod(12, 5) 结果为2
3)日期函数
例:今天 明天 昨天
select sysdate 今天,sysdate+1 明天,sysdate-1 昨天 from dual;
add_months
select add_months(sysdate,1) -->当前日期再加上一个月
next_day 从某个日期算起,下一个出现该星期几的日期是哪天: select next_day(sysdate,‘星期三‘) from dual;
last_day 当月的最后一天 select last_day(sysdate)-->当前日期的月份的最后一天
round select round(sysdate,‘year‘) from dual;
select round(sysdate,‘month‘) from dual;
select round(sysdate,‘day‘) from dual;
trunc
转换函数:
隐式数据类型转换 与 显式数据类型转换
to_char(date, format)
to_date(string [,format])
to_char(number, format)
to_number(string [,format]) 如: to_number(‘22‘) 或 to_number(‘$22‘, ‘$99‘)
空值处理函数:
NVL (expr1, expr2)
可以使用的数据类型有日期、字符、数字
NVL2 (expr1, expr2, expr3)
expr1不为NULL,返回expr2;为NULL,就返回expr3( expr1 != null ? expr2 : expr3 )
条件表达式:
case ‘‘ when ‘‘ then ‘‘ when ‘‘ then ‘‘ else ‘‘ end;
select empno,ename,empjob ,sal 原来的工资, (case empjob when ‘PRESIDENT‘ sal+1000 when ‘MANAGER‘ then sal+800 else sal+400 end) 涨后的工资 from emp;
使用decode函数:
select empno,ename,empjob,sal 原来的工资,
(decode(empjob,‘PRISIDENT‘,sal+1000,‘MANAGER‘,sal+800,sal+400)) 涨后的工资
from emp;
版权声明:本文为博主原创文章,未经博主允许不得转载。