3. 翻页的SQL语句的处置
MYSQL处置翻页的SQL语句对照复杂,用LIMIT 入手下手地位, 纪录个数;PHP里还可以用SEEK定位到了局集的地位。ORACLE处置翻页的SQL语句就对照繁琐了。每一个了局集只要一个ROWNUM字段标明它的地位, 而且只能用ROWNUM<100, 不克不及用ROWNUM>80。
以下是经由剖析后较好的两种ORACLE翻页SQL语句( ID是独一关头字的字段名 ):
语句一:
SELECT ID, [FIELD_NAME,...] FROM TABLE_NAME WHERE ID IN ( SELECT ID FROM (SELECT ROWNUM AS NUMROW, ID FROM TABLE_NAME WHERE 前提1 ORDER BY 前提2) WHERE NUMROW > 80 AND NUMROW < 100 ) ORDER BY 前提3;
语句二:
SELECT * FROM (( SELECT ROWNUM AS NUMROW, c.* from (select [FIELD_NAME,...] FROM TABLE_NAME WHERE 前提1 ORDER BY 前提2) c) WHERE NUMROW > 80 AND NUMROW < 100 ) ORDER BY 前提3;