最近正忙著從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原始碼檔案 儲存在另乙個檔...