sql >> Databasteknik >  >> RDS >> Oracle

Personsökning med Oracle och sql-server och generisk personsökningsmetod

Tyvärr varierar metoderna för att begränsa radintervallet som returneras av en fråga från ett DBMS till ett annat:Oracle använder ROWNUM (se ocdecios svar), men ROWNUM fungerar inte i SQL Server.

Kanske kan du kapsla in dessa skillnader med en funktion som tar en given SQL-sats och första och sista radnummer och genererar lämplig paginerad SQL för mål-DBMS - det vill säga något i stil med:

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

som skulle komma tillbaka

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

för Oracle och något annat för SQL Server.

Observera dock att Oracle-lösningen lägger till en ny kolumn RN till resultaten som du måste hantera.



  1. PostgreSQL tabellvariabel

  2. DBaaS, moln och transparent frågedirigering

  3. En datamodell för peer-to-peer-utlåningsplattform

  4. Hur man hittar namnet på en begränsning i PostgreSQL