回顾 分页 !!
select * from emp;
select a.*,rownum from
(
select * from emp order by sal desc
)a where rownum <= 3
select b.* from
(
select a.*,rownum as rid from emp a
)b where b.rid between 6 and 10;
start = 结束下标-条数 +1
start = (页码 - 1)*条数 +1
end = 页码 * 条数
select 'abc' from dual
select * from emp;
select ename,sal+nvl(comm,0) from emp;
基本函数的使用 !
#1.什么是内置函数????
#系统自带,无需实例化,直接调用即可
#2.oracle中的内置函数分类
#(1)转换函数
#(2)日期函数
#(3)字符串函数
#(4)数学函数
#(5)分析函数(统计函数) max min count sum avg
#(6)其它函数 nvl nvl2
======================================================================
#to_number 转换数值型
select '1'+1 from dual;
select to_number('1')+1 from dual;
select to_number('helloworld') from dual;
#to_char 转换字符串型
select to_char(123) from dual;
select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual
select to_char(sysdate,'yyyy"年"mm"月"dd"日" hh:mi:ss') from dual
#to_date 转换日期
create table tb_demo
(
did number primary key,
ddate date
)
insert into tb_demo values(1,'2020-12-12');
insert into tb_demo values(1,to_date('2020-12-12','yyyy-mm-dd'))
select * from tb_demo;
select sysdate from dual;
select systimestamp from dual;
select add_months(sysdate,2) from dual;
select add_months(sysdate,-1) from dual;
select months_between(sysdate,to_date('2020-12-12','yyyy-mm-dd'))
from dual;
select next_day(sysdate,'星期二') from dual;
select last_day(sysdate) from dual;
select extract(year from sysdate) from dual;
select extract(month from sysdate) from dual;
select extract(day from sysdate) from dual;
select extract(month from hiredate) as "入职日期",count(*) as "人数" from emp
group by extract(month from hiredate)
select round(sysdate) from dual;
select round(to_date('2022-02-20 12:00:01','yyyy-mm-dd hh24:mi:ss'))
from dual;
select trunc(to_date('2022-02-20 23:59:59','yyyy-mm-dd hh24:mi:ss'))
from dual;
select length('我爱你') from dual;
select ltrim(' helloworld') from dual;
select length(' helloworld') from dual;
select length(ltrim(' helloworld')) from dual;
select replace('zz is a nice man','zz','dengyankang') from dual
select replace(replace(ename,'A','1'),'B','2') from emp;
select lpad('hello',10,'a') from dual;
select rpad('hello',10,'a') from dual;
select upper('zz is a nice man') from dual;
select lower('ZZ IS A NICE MAN') from dual;
select chr(97) from dual;
select ascii('a') from dual;
select ascii('阳') from dual;
select concat(job,ename) from emp
select instr('kashdsakdsakjdlksald','k') from dual;
select instr('kashdsakdsakjdlksald','k',2) from dual;
select instr('kashdsakdsakjdlksald','k',-2) from dual;
select instr('kashdsakdsakjdlksald','k',-2,2) from dual;
select substr('ksajhdkhsa',3) from dual;
select substr('ksajhdkhsa',3,5) from dual;
select decode('sb','nb','1','ab','2','sb','3')from dual;
字符串函数:length,ltrim,rtrim,lpad,rpad,upper,lower,chr,ascii
instr,substr,replace,decode。。。。。
abs|ceil|floor|sqrt|round|mod|power|sign|ROUND
select abs(-1) from dual;
select ceil(12.001) from dual;
select floor(12.99999) from dual;
select sqrt(4) from dual;
select power(2,3) from dual;
select power(2,8) from dual;
select power(2,10) from dual;
select round(12.89,1) from dual;
select mod(10,3) from dual;
select round(3,8) from dual;
select sign(100) from dual;
select sign(-100) from dual;
select sign(0) from dual;
select ename,sal,
decode(sign(sal - 3000),'1','需要纳税','0','继续努力','-1','回家种田')
as "备注"
from emp;
nvl2:如果某字段不为空使用1替代,如果为空用2替代。
select ename,comm,nvl2(comm,1,2) from emp;
select * from emp;