zhyiwww
          用平實的筆,記錄編程路上的點點滴滴………
          posts - 536,comments - 394,trackbacks - 0

          如何用 Select 語句查詢 oracle 表的前幾條記錄?

          我想說一點,雖然 select ? * ? from ? table ? where ? rownum< 你要查的記錄條數(shù),能夠取出前幾條記錄,但是你如果要把排序后記錄取前幾條結(jié)果就不對,如下 SQL 語句 ?
          ? select ? * ? from ? table ? where ? rownum<50 ? order ? by ?
          字段名 ? desc 取出來的不是按照先排序后取前幾名,而是先取出前幾名再排序,大家有沒有辦法實現(xiàn)先排序再取前幾名呢,我想這樣的語句在實現(xiàn)應(yīng)用中很有用,比如說要取前多少名這樣的問題的實現(xiàn)就得用這種語句

          ?



          |----------------------------------------------------------------------------------------|
                                     版權(quán)聲明  版權(quán)所有 @zhyiwww
                      引用請注明來源 http://www.aygfsteel.com/zhyiwww   
          |----------------------------------------------------------------------------------------|
          posted on 2006-05-23 18:02 zhyiwww 閱讀(14530) 評論(15)  編輯  收藏 所屬分類: database

          FeedBack:
          # re: 如何用Select 語句查詢oracle表的前幾條記錄?
          2006-05-24 09:38 | superwar
          select * from (select * from table order by 字段名 desc) where rownum<50   回復(fù)  更多評論
            
          # re: 如何用Select 語句查詢oracle表的前幾條記錄?
          2006-05-26 19:21 | zhyiwww
          謝謝您的回復(fù)!!
            回復(fù)  更多評論
            
          # 在sql中用選擇語句返回在各個區(qū)間內(nèi)的記錄行數(shù)????
          2006-11-07 17:33 | 周威
          我用一個事例來說明我的問題吧!比如在一個表中第一列自動編號,第二列為money類型,給定一個區(qū)間大小(如5)要返回分布在(0-5),(5-10)……各個區(qū)間的行數(shù)。
          知道怎么用選擇語句實現(xiàn)嗎?  回復(fù)  更多評論
            
          # re: 如何用Select 語句查詢oracle表的前幾條記錄?
          2006-11-13 10:29 | zhyiwww
          我看到了你的問題,不過,我現(xiàn)在也沒有解決的辦法.
          我想你可能是在考慮使用此辦法來實現(xiàn)分頁吧.
          現(xiàn)在我也在幫你找一些資料,看一下使用rowset能不能實現(xiàn),如果我找到解決方案的話,我再給你回復(fù).  回復(fù)  更多評論
            
          # re: 如何用Select 語句查詢oracle表的前幾條記錄?
          2006-11-25 20:33 | lawuu
          可以解決,網(wǎng)上一籮筐,簡單搜索即可  回復(fù)  更多評論
            
          # w
          2007-03-14 16:42 | 22
          # re: 如何用Select 語句查詢oracle表的前幾條記錄?
          2007-03-29 16:58 | zhangmz
          可是我的oracle是8i的,子查詢里不能用order by
          這可怎么辦?沒有辦法了么?  回復(fù)  更多評論
            
          # re: 如何用Select 語句查詢oracle表的前幾條記錄?
          2008-04-27 17:29 | kuake
          mysql 4.0以下不能用嵌套查詢,我也在找辦法。  回復(fù)  更多評論
            
          # re: 如何用Select 語句查詢oracle表的前幾條記錄?
          2008-07-03 15:14 | heh
          "# 在sql中用選擇語句返回在各個區(qū)間內(nèi)的記錄行數(shù)????2006-11-07 17:33 | 周威

          我用一個事例來說明我的問題吧!比如在一個表中第一列自動編號,第二列為money類型,給定一個區(qū)間大小(如5)要返回分布在(0-5),(5-10)……各個區(qū)間的行數(shù)。
          知道怎么用選擇語句實現(xiàn)嗎? 回復(fù) 更多評論"

          用如下語句可以搞定:
          select count(1) from table t group by round(t.money/5)  回復(fù)  更多評論
            
          # re: 如何用Select 語句查詢oracle表的前幾條記錄?
          2008-07-03 15:29 | heh
          select round(t.money/5),count(1) from table t group by round(t.money/5) 當(dāng)然要加round(t.money/5) 剛才那個有問題  回復(fù)  更多評論
            
          # re: 如何用Select 語句查詢oracle表的前幾條記錄?[未登錄]
          2008-09-22 16:05 | test
          @superwar
          select * from (select * from table order by 字段名 desc) where rownum<50

          這個方法是最好的  回復(fù)  更多評論
            
          # re: 如何用Select 語句查詢oracle表的前幾條記錄?[未登錄]
          2011-09-28 18:20 | lk
          額,樓主,你說的那個“ select * from table where rownum<50 order by 字段名 desc ,取出來的不是按照先排序后取前幾名,而是先取出前幾名再排序”有誤。它查詢出來的結(jié)果與“select * from (select * from table order by 字段名 desc) where rownum<50”一樣。如果要先取出前幾名再排序的話,應(yīng)該寫成這樣“select*from( select * from table where rownum<50 ) order by 字段名 desc”。希望能對你有用,嘿嘿  回復(fù)  更多評論
            
          # re: 如何用Select 語句查詢oracle表的前幾條記錄?
          2012-03-09 16:39 | 11
          11111111111111111  回復(fù)  更多評論
            
          # re: 如何用Select 語句查詢oracle表的前幾條記錄?
          2012-03-09 16:39 | 11
          11111  回復(fù)  更多評論
            
          # re: 如何用Select 語句查詢oracle表的前幾條記錄?[未登錄]
          2012-11-19 16:39 | cheney
          @superwar
          這種做法不太好,當(dāng)表數(shù)據(jù)量非常大時,你的sql就會執(zhí)行死掉  回復(fù)  更多評論
            
          主站蜘蛛池模板: 蕲春县| 龙州县| 崇礼县| 太康县| 蕲春县| 张家口市| 洛南县| 青铜峡市| 分宜县| 长海县| 和顺县| 太白县| 宜丰县| 宁安市| 曲沃县| 南华县| 梅河口市| 波密县| 鸡东县| 邵阳市| 开原市| 宜章县| 阿勒泰市| 宁波市| 石屏县| 富蕴县| 敦化市| 淮阳县| 海丰县| 独山县| 平塘县| 丁青县| 奎屯市| 科尔| 类乌齐县| 喜德县| 颍上县| 舒兰市| 通江县| 拜泉县| 乌鲁木齐市|