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

Jednoduchý výběr s klauzulí kde a offset načítání nefunguje v oracle

OFFSET 1 ROWS FETCH NEXT 10 ROWS ONLY je k dispozici od Oracle 12c.

Místo toho musíte provést dotaz a objednat data; potom vygenerujte číslo řádku pro seřazené řádky; a nakonec filtrujte podle čísel řádků. Tyto kroky musí proběhnout ve správném pořadí ve vnořených dílčích dotazech:

SELECT *
FROM   (
  SELECT t.*,
         ROWNUM AS rn
  FROM   (
    SELECT up.NAME AS upozilaName_bn,
           up.id AS upozila,
           dis.NAME AS districtName_bn,
           dis.id AS district,
           dv.NAME AS divisionName_bn,
           dv.id AS division,
           w.COUNTER_TYPE,
           w.COUNTER_ID,
           w.STATUS
    FROM X w
    left join  Y up ON w.UPOZILA = up.ID
    left JOIN  Z dis ON w.DISTRICT = dis.id
    left join  P dv ON w.DIVISION = dv.ID
    order by upozilaName_bn asc
  ) T
)
WHERE  rn BETWEEN 2 AND 11;



  1. Jak přidat vertikální okraje do vaší výstupní mřížky SQL*Plus / SQLcl

  2. Připojení k serveru MySQL na localhost přes Docker

  3. Vytvoření Oracle Sequence Trigger

  4. Vzor třídy MySQLi pro připojení, zavřít, nechat otevřené?