每天積累一點點,感覺自己又進步了
--1:無order by排序的寫法。(效率最高)
--(經過測試,此方法成本最低,只巢狀一層,速度最快!即使查詢的資料量再大,也幾乎不受影響,速度依然!)
select
*from
(select
rownum
as rowno, t
.*from
emp t
where
hire_date
between
to_date
('20060501'
, 'yyyymmdd'
)and
to_date
('20060731'
, 'yyyymmdd'
)and
rownum
<=
20)table_alias
where
table_alias
.rowno
>=
10;--2:有order by排序的寫法。(效率最高)
--(經過測試,此方法隨著查詢範圍的擴大,速度也會越來越慢哦!)
select
*from
(select
tt.*,
rownum
as rowno
from
( select t
.*from
emp t
where
hire_date
between
to_date
('20060501'
, 'yyyymmdd'
)and
to_date
('20060731'
, 'yyyymmdd'
)order
by create_time
desc,
emp_no
) tt
where
rownum
<=
20)table_alias
where
table_alias
.rowno
>=
10;--3:無order by排序的寫法。(建議使用方法1代替)
--(此方法隨著查詢資料量的擴張,速度會越來越慢哦!)
select*
from
(select
rownum
as rowno, t
.* from
k_task t
where
flight_date
between
to_date
('20060501'
, 'yyyymmdd')
andto_date
('20060731'
, 'yyyymmdd'
))table_alias
where
table_alias
.rowno
<=
20 and
table_alias
.rowno
>=
10;--table_alias.rowno between 10 and 100;
--4:有order by排序的寫法.(建議使用方法2代替)
--(此方法隨著查詢範圍的擴大,速度會越來越慢哦!)
select*
from
(select
tt.*,
rownum
asrowno
from
( select *
from
k_task t
where
flight_date
between
to_date
('20060501'
, 'yyyymmdd')
andto_date
('20060531'
, 'yyyymmdd')
order
by fact_up_time
, flight_no
) tt
)table_alias
where
table_alias
.rowno
between
10 and
20;--5另類語法。(有order by寫法)
--(語法風格與傳統的sql語法不同,不方便閱讀與理解,為規範與統一標準,不推薦使用。)
with
partdataas
( select
rownum
as rowno
, tt.*
from
( select *
from
k_task t
where
flight_date
between
to_date
('20060501'
, 'yyyymmdd')
andto_date
('20060531'
, 'yyyymmdd')
order
by fact_up_time
, flight_no)tt
where
rownum
<=
20)select*
from
partdata
where
rowno
>=
10;--6另類語法 。(無order by寫法)
with
partdataas
( select
rownum
as rowno, t
.* from
k_task t
where
flight_date
between
to_date
('20060501'
, 'yyyymmdd')
andto_date
('20060531'
, 'yyyymmdd')
andrownum
<=
20)select*
from
partdata
where
rowno
>=
10;
oracle中自動建立分表
最近由於工作需要,研究了下oracle中分割槽表和自動建立分割槽表 主要用到的關鍵字 partition 建立分割槽表必備 interval 自動建立分割槽表必備 好像只有oracle10g 和oracle11g 中有該關鍵字 例子如下 create table t1 id varchar2 50 ...
oracle分庫分表原理 題庫分庫分表架構方案
方案 專案背景 在現在題庫架構下,針對新購買的1300w多道資料進行整合,不影響現有功能。由於資料量偏多,需要進行資料的切分 目標場景 相容舊的功能 對1300多w資料進行分庫分表 需要對舊的資料進行整合 老師端選題組卷 可以根據 學段 學科 知識點 難度 題型 來篩選 學生端根據老師端所選題目獲取...
oracle 求百分比
oracle求百分比 例子 求name為dead的記錄所佔百分比 select tt.retrieve retrievedrate,tc.公司名稱 companyname,tc.部門名稱 deptname,tc.使用者名稱 username,tc.nodename nodename,tc.proce...