一、字符控制函数
lower(‘’)全部小写
upper(‘’)全部大写
initcap(‘’)单词首字母大写
select * from employees where lower(last_name) = ‘king’;
连接contact(‘’,’’)
截取Substr(‘helloworld’,2,4)从第二个位置开始,输出四个
字符长度Length(‘helloworld’)
Instr(‘helllworld’,’w’) w首次出现的位置 未出现返回0
Lpad(last_name,’*’)10位不齐,左边补*
Rpad(last_name,’*’)) 10位不齐,右边补*
Trim(‘h’ from ‘helloword’)将h从字符段中移除(首尾位h)
Replace(‘abcd’,’b’,’a’)将b替代为a 替代所有的a
二、数字函数
Round(123.123,2)保留两位小数
Round(123.123)保留到整数
Round(123.123,-2)保留到百位
Trunk()截断
Round(123.123,2)截断两位小数
Round(123.123)截断到整数
Round(123.123,-2)截断到百位
Mod求余
Mod(1200,100)
三、日期的数学运算
日期加上或减上一个数字,结果仍为日期
两个日期之间相差返回日期相差天数
日期之间不能做加法
数字除24向日期中加上或减去天数
Months_between(sysdate,hire_date):两个日期相差的月数
Add_months(sysdate,12):向指定日期加上若干月数Add_months(sysdate,-12)
Next_day(sysdate,’星期一’):
Last_day(syadate)当月倒数第一天
Round(sysdate,’month’)
Round(sydate,’year’)
Trunc(sysdate,’month’)
Trunc(sysdate,’year’)
隐式类型转化
Date<->varchar2<->number
显示数据转换
Select employ_id,hire_date from employees where to_char(hire_date,’yyyy-mm-dd’) = ‘1994-06-07’;
To_char()
To_number()
通用函数
Nvl(expr1,expr2):如果expr1为空,就用恶心pr代替。如果不为空就是其本身
Nvl2(expr1,expr2,expr3):expr1不为null,返回expr2,为空返回expr3
Nullif(expr1,expr2):相等返回null,不等返回expr1
Coalesce(commission_pct,null,10)commission_pct为空返回后面,后面在为空,返回下一个,依次往后
条件表达式
Case表达式
Select last_name,employee_id,department_id
Case department_id when 10 then salary * 1.1
When 20 then salary *1.2
Else salary *1.3 end
from employees
Where department_id in (10,20,30)
Decode函数