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

SQL Query S Row_Number, pořadí podle a kde klauzule

rownum je pseudosloupec, který počítá řádky v sadě výsledků po byla použita klauzule kde.

Je to to, co se snažíte získat?

SELECT *
FROM ( 
    SELECT id, column1, column2
    FROM atable ORDER BY 2 DESC
) 
WHERE ROWNUM < 100;

Protože se jedná o pseudosloupec, který je striktně čítačem řádků vyplývajících z klauzule where, neumožňuje vám stránkování (tj. mezi 200 a 300).

Toto je pravděpodobně to, co hledáte:

SELECT *
FROM
 (SELECT a.*, rownum rnum FROM
     (SELECT id, column1, column2 FROM atable ORDER BY 2 DESC) a WHERE rownum <= 300)
WHERE rnum >= 200;


  1. Existuje způsob, jak SQL seřadit více časových sloupců do jednoho při zachování metadat?

  2. Oracle SQL Query pro výpis všech schémat v DB

  3. Začínáme s GearHost pro vývoj databáze MySQL

  4. Plánovač událostí by se měl spouštět každý měsíc