Oracle 函数
日期函数:
1.sysdate--查询当前日期
select sysdate from dual; --查询当前日期
2.months_between--返回两个日期之间的月份差
select months_between(to_date('2017-1-7','yyyy-MM-dd'),to_date(('2015-5-7','yyyy-MM-dd')) from dual;
3.add_months--给某个日期添加N个月
select add_months(sysdate,2) from dual;
4.round--四舍五入
select round(1.554,1) from dual;
数字函数:
1.abs(n)--绝对值
select abs(-3) from dual;
2.sqrt(n)--平方根
select sqrt(9) from dual;
字符函数:
1.initcap(char)--首字母大写
select initcap('abc') from dual;
2.instr(char,substr[,pos])--查找子串位置
select instr('corporate floor','or',3,2) from dual
3.substr(char,pos,len)--取子字符串
select substr('欢迎大家来到北大青鸟学习',1,2) from dual;
转换函数:
1.to_char--转换成字符串类型
select to_char(1234.5,'$9999.9') from dual;
2.to_number--转换成数值类型
select to_number('1235.6') from dual;
其他函数:
1.nvl(exp1,exp2)--如果exp1的值为null,则返回exp2的值,否则返回exp1的值
select sal*12 工资,comm 奖金,sal*12+nvl(comn,0) from emp;
2.nvl2(exp1,exp2,exp3)--如果exp1的值为null,则返回exp2的值,否则返回exp3的值
select sal*12 工资,comm 奖金,sal*12+nvl(comn,0,1) from emp;
3.decode(value,if1,then1,if2,then2...,else)--如果value的值为if1,则返回then1的值;如果value的值为if2,则返回then2的值,...否则返回else的值
select product_id, decode(warehouse_id,1,'Southlake',
2,'San Francisco',
3,'New Jesory',
4,'Seattle',
'Non domentic')
"Location of inventory" from inventories where product_id<1775;
分页查询:
--查询第4到6条数据
--1 三层嵌套
select * from
(
select * from
(
select emp.*,rownum as rn from emp
)
where rn>=4
)
where rn<=6
--2 两层嵌套
select * from
(
select emp.*,rownum rn from emp
where rownum<=6
)
where rn>=4