Oracle 中 查詢 從m 行到n行 的 記錄

2021-04-13 21:39:59 字數 843 閱讀 9587

最近正忙著從sql server 向oracle 轉型,遇到的第乙個常見問題就是 查詢前n 行資料的問題。

oracle 中沒有像sql server 中的top n 那樣的關鍵字和用法,萬幸的是 oracle 中有乙個被稱為 偽行號列的 rownum 幫了我的大忙。

查詢前n 行資料

select * from  exptable where rownum<=n;

變得如此簡單。

那麼 查詢 從m 行到n行 的 記錄 是不是 相想象的那樣呢?

select * from  exptable where  rownum >=m  and  rownum<=n;

使用上面的方法居然一條資料也沒查詢到。實在是失望之極。

正處失望之際,突然想到的 minus 集合操作符, 使用下面的方法:

select * from  exptable where rownum<=n

minus

select * from  exptable where rownum<=m;

果然得到了預期效果。

原來在sql server 中、 沒有 minus 集合操作符 的情況下 我曾用過 新增 identity 列的方式

實現了 《查詢 從m 行到n行 的 記錄  > 的 目的 。先如今是不是也可以套用一下:

select  field1,field2,..., fieldn from

(select  rownum rn ,field1,field2,..., fieldn from exptable where rownum<=n) t

where t.rn>m

同樣得到了預期效果

原來實現方法多多!!

oracle中查詢第m行到第n行的方法

表內容如下 balance accountno 1000 1 1000 2 1000 3 1000 4 1000 5 在oracle資料庫中查詢結果的行號使用偽列rownum表示 從1開始 需要注意rownum是在查詢之後排序之前賦值的。查前2行 select from account where ...

查詢取n到m行

具體出處不清楚了,看到論壇上的就收集了 view plaincopy to clipboardprint?1.select top m from tablename where id not in select top n id from tablename order by id asc desc...

注釋c語言原始碼(輸入M和N,從M行注釋到N行)

任務和 讀入乙個c程式,輸入m n兩個數字,從第m行起的n行 將作為注釋使用 即在這些行前面加上 新程式儲存到另乙個.c檔案中。檔名 main.c 完成日期 2016 12 01 版本號 v1.0 問題描述 輸入m和n,將c語言的原始碼從m到n行注釋掉。程式輸出 注釋後的c原始碼檔案 儲存在另乙個檔...