sql >> Databáze >  >> RDS >> Oracle

Stránkování pomocí serveru Oracle a SQL a obecná metoda stránkování

Bohužel metody pro omezení rozsahu řádků vrácených dotazem se liší od jednoho DBMS k druhému:Oracle používá ROWNUM (viz odpověď ocdecio), ale ROWNUM nebude fungovat na SQL Server.

Možná můžete tyto rozdíly zapouzdřit pomocí funkce, která převezme daný příkaz SQL a čísla prvního a posledního řádku a vygeneruje vhodné stránkované SQL pro cílový DBMS – tj. něco jako:

sql = paginated ('select empno, ename from emp where job = ?', 101, 150)

který by se vrátil

'select * from (select v.*, ROWNUM rn from ('
 + theSql
 + ') v where rownum < 150) where rn >= 101'

pro Oracle a něco jiného pro SQL Server.

Pamatujte však, že řešení Oracle přidává k výsledkům nový sloupec RN, se kterými se budete muset vypořádat.



  1. Kdy mám zavřít kurzor a db?

  2. Blockchain:Co to je, jak to funguje a co to znamená pro velká data

  3. Existuje způsob, jak spustit MySQL v paměti pro testovací případy JUnit?

  4. PostgreSQL Reverzní LIKE