Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
Oracle/PLSQL: recuperar los N registros principales de la consulta
Pregunta: ¿Cómo puedo recuperar los primeros N registros de la consulta?
Por ejemplo, ¿qué pasa si quiero recuperar los primeros 3 registros de los resultados de la consulta? ¿Cómo puedo hacer esto?
Respuesta: para recuperar los primeros N registros de una consulta, puede usar la siguiente sintaxis:
SELECT * FROM (your ordered query) alias_name WHERE rownum <= Rows_to_return ORDER BY rownum;
Por ejemplo, si quisiera recuperar los 3 primeros registros de la tabla de proveedores, ordenados por nombre de proveedor en orden ascendente, ejecutaría la siguiente consulta:
SELECT * FROM (select * from suppliers ORDER BY supplier_name) suppliers2 WHERE rownum <= 3 ORDER BY rownum;
Si quisiera recuperar los primeros 3 registros de la tabla de proveedores, ordenados por nombre de proveedor en orden descendente, ejecutaría la siguiente consulta:
SELECT * FROM (select * from suppliers ORDER BY supplier_name DESC) suppliers2 WHERE rownum <= 3 ORDER BY rownum;
Si quisiera recuperar los primeros 5 registros de la tabla de proveedores, ordenados por ID de proveedor en orden ascendente, ejecutaría la siguiente consulta:
SELECT * FROM (select * from suppliers ORDER BY supplier_id) suppliers2 WHERE rownum <= 5 ORDER BY rownum;
Si quisiera recuperar los primeros 5 registros de la tabla de proveedores, ordenados por ID de proveedor en orden descendente, ejecutaría la siguiente consulta:
SELECT * FROM (select * from suppliers ORDER BY supplier_id DESC) suppliers2 WHERE rownum <= 5 ORDER BY rownum;