数字函数
round(45.926,2) 45.93 四舍五入到小数点2位
trunc(45.926,2) 45.92 截断到小数点2位、
mod(1600,300) 100 返回除法运算的余数 常用于确定值为奇数还是偶数
练习 select round(445.923,2) ,round(445.923,1) ,round(445.923,-1),round(455.923,-2) from dual
处理日期
sysdate
select sysdate from dual 2009-3-31 22:18:31
months_between 2个日期之前的月数 add_months 加月数 last_day 月的最后天
select id,months_between(sysdate,up_time)
MOT,add_months(up_time,5) Addd,
last_day(up_time) Lastt from inch_cinema_res
转换函数
隐式数据类型转换
to_char(up_time, 'yyyy/mm/dd') 2009/03/04
to_char(up_time, 'YYYY-MM-DD YEAR-MONTH-DAY MON-DY') 2009-03-04 TWO THOUSAND NINE-3月 -星期三 3月 -星期三
日期格式: YYYY YEAR MM MONTH MON DY DAY DD
to_date(str,'yy-mm-dd')
to_number
嵌套函数
F3(F2(F1(col,arg1),arg2),arg3)
常规函数
nvl(playtime,'12') playtime 为空 结果为12
nvl(playtime,'13','12') playtime 不为空 结果为13 为空 结果为12
nullif(playtime,a,b) a=b 则结果为空 否则为a 相当于case
coalesce(a,b,c,d) a为空,则b; ab为空,则c; abc都为空,则d 相当于多个case
条件表达式
CASE函数
select user_id, name,user_integral,
case user_id when 10872 then user_integral+1000
when 8574 then user_integral+2000
when 8874 then user_integral+3000
else user_integral END resasd
from inch_user_base t where user_integral >100
10872 123 1123
8574 123 2123
8874 123 3123
7451 123 123
DECODE函数 同CASE
练习 3
select sysdate as "DATE" from dual 2009-3-31 23:23:17
select user_id, name,user_integral,1.15*user_integral as new_inte, 1.15*user_integral-user_integral as jian from inch_user_base t where user_integral >1000
四 显示多表数据
2表查询 等值联结
select a.id,a.name,b.id,b.res_id,b.path from inch_cinema_res a,inch_cinema_partres b where a.id = b.res_id order by a.id desc
非等值联结
select e.last_name,e.salary,j.grade_level from employees e,job_grades j where e.salary bewteen j.lowest_sal and j.highest_sal;[@more@]