sql编写oracle
1. oracle sql怎么写:
创建表,插入数据
createtablea
(idint,
numint);
createtableb
(idint,
numint,
timedate);
insertintoavalues(1,50);
insertintoavalues(2,44);
insertintobvalues(1,8,to_date('20170329','yyyymmdd'));
insertintobvalues(4,66,to_date('20160101','yyyymmdd'));
insertintobvalues(1,2,to_date('20160303','yyyymmdd'));
commit;
执行:
selecta.id,
case
whena.id=b.idthen
a.num-b.num
else
a.num
end
froma
leftjoin(select*frombwhereto_char(b.time,'yyyymmdd')<'20170101')b
ona.id=b.id
结果:
2. oracle中选出某个字段里面最大值的记录的sql语句怎么写
1、创建测试表,
create table test_max(id number, value number);
3. Oracle 的SQL语句怎么编写
select a.类别 一级类别, b.类别 二级类别, c.类别 三级类别, d.类别 四 级类别 from 表名 a
join 表名 b on b.上级类别=a.类别
join 表名 c on c.上级类别=b.类别
join 表名 d on d.上级类别=c.类别
where a.类别 not in (select 上级类别 from 表名)
4. 一道Oracle的SQL语句编写题
A、select abs(sum(case when dept='Java' then 1
when dept='C++' then -1
end)) as Java专业和C++专业相差的人数
from student
where
dept ='Java' or dept ='C++';
B、select name,age from student
where age >(select max(age) from student where dept ='Java')
C、
select * from
(
select name, age from student
where age >(select avg(age) from student)
order by age
)
where rownum<=3
5. 在oracle数据库中的分页SQL语句怎么写
前提:
分页参数:size = 20 page = 2;
没有order by的查询;
嵌套子查询,两次筛选(推荐使用)。
SQL语句:
SELECT *
FROM (SELECT ROWNUM AS rowno, t.*
FROM DONORINFO t
WHERE t.BIRTHDAY BETWEEN TO_DATE ('19800101', 'yyyymmdd')
AND TO_DATE ('20060731', 'yyyymmdd')
AND ROWNUM <= 20*2) table_alias
WHERE table_alias.rowno > 20*(2-1);
(5)sql编写oracle扩展阅读:
rownum总是从1开始的,第一条不满足去掉的话,第二条的rownum 又成了1。依此类推,所以永远没有不满足条件的记录。
可以这样理解:rownum是一个序列,是Oracle数据库从数据文件或缓冲区中读取数据的顺序。它取得第一条记录则rownum值为1,第二条为2。
依次类推:当使用“>、>=、=、between...and”这些条件时,从缓冲区或数据文件中得到的第一条记录的rownum为1,不符合sql语句的条件,会被删除,接着取下条。下条的rownum还会是1,又被删除,依次类推,便没有了数据。