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,又被刪除,依次類推,便沒有了數據。