隨筆-57  評論-202  文章-17  trackbacks-0
                在Oracle中不支持LIMT ? OFFSET ?這樣的SQL語法,所以原先的MySQL的語句移植到Oracle中需要做一些改動,我的做法如下:
          MySQL:SELECT * FROM foo ORDER BY xxx LIMIT ? OFFSET ?
          Oracle:SELECT * FROM (SELECT ROWNUM AS NUMROW, A.* FROM (SELECT * FROM foo ORDER BY xxx) A) WHERE NUMROW>? AND NUMROW<=?
             這是利用Oracle的一個虛擬的ROWNUM列實現的,只要在原來的SQL語句前面加上“SELECT * FROM (SELECT ROWNUM AS NUMROW, A.* FROM (”,并且把后面的“LIMIT ? OFFSET ?”改成“) A) WHERE NUMROW>? AND NUMROW<=?”,并且在代碼處做相關的修改即可。
          posted on 2005-05-12 14:52 小米 閱讀(1197) 評論(1)  編輯  收藏 所屬分類: 數據庫

          評論:
          # re: 從MySQL到Oracle的分頁SQL語句的移植 2009-02-03 17:13 | liuxinsi
          對我很有幫助。3q  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 鸡东县| 安新县| 乌兰浩特市| 云霄县| 辉南县| 手游| 灵宝市| 广灵县| 临洮县| 顺义区| 大庆市| 茌平县| 乐都县| 怀宁县| 临澧县| 崇州市| 宁武县| 桦甸市| 定南县| 衢州市| 金乡县| 襄城县| 闵行区| 准格尔旗| 克山县| 鹤庆县| 上饶县| 吐鲁番市| 巩留县| 青阳县| 荃湾区| 分宜县| 黄陵县| 郴州市| 塔城市| 天津市| 顺平县| 涟水县| 浙江省| 凌海市| 武陟县|