在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
小米 閱讀(1191)
評論(1) 編輯 收藏 所屬分類:
數據庫