Oracle數(shù)據(jù)庫(kù)如何獲取多條結(jié)果集中的第一條或某一條
這是sql
--獲取多條結(jié)果集中的第一條,通常會(huì)排下序之類的,隨你方便,如果你不排序直接用括號(hào)里的就行 select * from (select * from table where 1 = 1 order by value1) where rownum = 1;
這里解釋一下,為什么外邊要多套一層select,我猜你寫(xiě)的sql應(yīng)該是
select * from table where rownum = 1 order by value1;
但是你取到的應(yīng)該不是你order by出來(lái)的第一條,因?yàn)閟ql執(zhí)行順序并不是真的從后往前讀,代碼會(huì)先讀 where 而不是 order by ,所以where rownum = 1的時(shí)候,實(shí)際上它就查出來(lái)一條,所以order by雖然執(zhí)行了,但并不是把結(jié)果集 order by 之后才抽出第一條。
那么怎么選擇結(jié)果集的其他條呢?
其實(shí)沒(méi)有找到太好的辦法,只能參考以下了
select * from ( select rownum id,t1.* from (select t2.* from t2 order by t2.某列) t1) where id=第幾條;
看起來(lái)很多層是吧,不要害怕,我一說(shuō)你就懂了。
最里層的 t2 是用來(lái)把你想要的數(shù)據(jù)進(jìn)行排序,
外一層的 t1 是用來(lái)給你排好序的數(shù)據(jù)加一列序號(hào)ID,
最外層的就是獲取你想要的某一條了,比如結(jié)果集有10條,你想要的第5條,那么 就把
where id=第幾條
寫(xiě)成
where id = 5
就好了。
補(bǔ)充:Oracle分組取第一條數(shù)據(jù)
看看以前的私密日志,原來(lái)自己之前被很多小而簡(jiǎn)單的問(wèn)題困惑過(guò)!
看著那時(shí)候我們還是新手中的新手做的備忘筆記!
其實(shí)就是用了Oracle的統(tǒng)計(jì)函數(shù)而已!
以前的日記(看樣子應(yīng)該是以前公司的源碼,呵呵……)如下:勿噴!
對(duì)多數(shù)據(jù)進(jìn)行分組排序后取每組第一條記錄:
SELECT *
FROM (
SELECT ROW_NUMBER() OVER(
PARTITION BY ZA40011_3.URIAGE_DENPYO_NO,ZA40011_3.URIAGE_DENPYO_ROW_NO
ORDER BY ZA40011_3.KAKUTEI_SURYO_CS,
ZA40011_3.KAKUTEI_SURYO_BL,
ZA40011_3.KAKUTEI_SURYO_BT,
ZA40011_3.SYUKKA_SHIJI_NO,
ZA40011_3.SYUKKA_SHIJI_ROW_NO DESC) LEV,
ZA40011_3 .*
FROM WT_001_ZA40011_22070_2 ZA40011_2,
WT_001_ZA40011_22070_3 ZA40011_3,
JT_GYOMU_URIAGE_DETAIL URIAGE_DETAIL
WHERE
ZA40011_2.KAISYA_CODE = URIAGE_DETAIL.KAISYA_CODE
AND ZA40011_2.URIAGE_DENPYO_NO = URIAGE_DETAIL.URIAGE_DENPYO_NO
AND ZA40011_2.URIAGE_DENPYO_ROW_NO = URIAGE_DETAIL.ROW_NO
AND URIAGE_DETAIL.KAISYA_CODE = ZA40011_3.KAISYA_CODE
AND URIAGE_DETAIL.URIAGE_DENPYO_NO = ZA40011_3.URIAGE_DENPYO_NO
AND URIAGE_DETAIL.ROW_NO = ZA40011_3.URIAGE_DENPYO_ROW_NO
AND ZA40011_3.KEPPIN_RIYU_CODE IS NOT NULL
)
WHERE LEV = 1
-- ORDER BY KAKUTEI_SURYO_CS DESC總結(jié)
到此這篇關(guān)于Orcale數(shù)據(jù)庫(kù)如何獲取多條結(jié)果集中的第一條或某一條的文章就介紹到這了,更多相關(guān)Orcale獲取多條結(jié)果集中某一條內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
oracle增加表空間大小兩種實(shí)現(xiàn)方法
增加表空間大小:一種是為表空間增加數(shù)據(jù)文件/另一種方法是增加表空間原有數(shù)據(jù)文件尺寸,感興趣的朋友可以了解下,或許對(duì)你有所幫助2013-01-01
oracle查看被鎖的表和被鎖的進(jìn)程以及殺掉這個(gè)進(jìn)程
本節(jié)主要介紹了oracle如何查看被鎖的表和被鎖的進(jìn)程以及殺掉這個(gè)進(jìn)程,需要的朋友可以參考下2014-08-08
oracle實(shí)現(xiàn)一對(duì)多數(shù)據(jù)分頁(yè)查詢篩選示例代碼
這篇文章主要給大家介紹了關(guān)于oracle實(shí)現(xiàn)一對(duì)多數(shù)據(jù)分頁(yè)查詢篩選的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11
如何使用GDAL庫(kù)的ogr2ogr將GeoJSON數(shù)據(jù)導(dǎo)入到PostgreSql中
本文主要介紹了PyTorch中的masked_fill函數(shù)的基本知識(shí)和使用方法,masked_fill函數(shù)接受一個(gè)輸入張量和一個(gè)布爾掩碼作為主要參數(shù),掩碼的形狀必須與輸入張量相同,掩碼操作根據(jù)掩碼中的布爾值在輸出張量中填充指定的值或保留輸入張量中的值2024-10-10
Oracle?19c?RAC?手工建庫(kù)的搭建過(guò)程
這篇文章主要介紹了Oracle?19c?RAC?手工建庫(kù)搭建過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-01-01
ORACLE應(yīng)用經(jīng)驗(yàn)(1)
ORACLE應(yīng)用經(jīng)驗(yàn)(1)...2007-03-03
使用Navicat Premium連接Oracle的方法步驟
這篇文章主要介紹了使用Navicat Premium連接Oracle的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
詳解Oracle 中實(shí)現(xiàn)數(shù)據(jù)透視表的幾種方法
這篇文章主要介紹了詳解Oracle 中實(shí)現(xiàn)數(shù)據(jù)透視表的幾種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04

