項目中有個功能需要取4條數據,每2條取一次,頁面會傳過來一個參數,比如4,就是就取第3條和第4條數據,項目要兼容mysql和oracle,mysql經常用limit,oracle通常用rownum
mysql取第3和4條記錄sql實例,limit 代表從幾開始取幾個,下面sql從2開始,取2條數據,不包含2,從3開始,因此取的結果是3,4條記錄:
select t.C_ID,t.C_PATH,t.C_REAL_PATH,t.C_TEXT from tbl_catalog t where t.c_parent_id=83 order by t.c_sortno asc limit 2,2
oracle用rownum就顯得複雜一些,如果像mysql那樣直接用,很多情況下是查不到數據的,實例:
select *
from (select a.*, rownum row_num
from (select t.C_ID, t.C_PATH, t.C_REAL_PATH, t.C_TEXT
from tbl_catalog t
where t.c_parent_id = 83
order by t.c_sortno asc) a) b
where b.row_num > 2
and b.row_num <= 4;