sql >> Database >  >> RDS >> Oracle

SQL-query met Row_Number, order by en where-clausule

rownum is een pseudo-kolom die rijen telt in de resultatenset na de waar-clausule is toegepast.

Is dit wat je probeert te krijgen?

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

Omdat het een pseudokolom is die strikt een teller van rijen is die voortkomt uit de waar-clausule, kunt u geen paginering uitvoeren (d.w.z. tussen 200 en 300).

Dit is waarschijnlijk wat je zoekt:

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. SQLite-queryresultaten opmaken als kolommen met kolomkoppen

  2. mysql-python:een volledig stand-alone _mysql.so bouwen op Mac OS X?

  3. Hoe kan ik verbinding maken met MySQL op een WAMP-server?

  4. Hoe 'distinct' te gebruiken in zend db-model