您的位置:首页 > 数据库 > Oracle

oracle学习笔记(四)

2015-08-15 09:39 495 查看
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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: