Oracle - primeos N renglones

 
Vista:

primeos N renglones

Publicado por Gerardo Castillo (2 intervenciones) el 07/09/2004 01:17:11
Deseo filtrar los resultados de cualquier query para los primeros N renglones, pero no funciona el ROWNUM porque no respeta el orden del query. En Microsoft SQL se utiliza la instruccion TOP N, por ejemplo:
SELECT TOP 1 * FROM EMPLEADO ORDER BY DEPTO DESC, EMPLEADO DESC lo cual me regresa solo el primer registro del numero mayor de empleado que se encuentra en el departamento con el numero mayor . Espero que exista algo similar en ORACLE ya que definitivamente el ROWNUM no funciona para estos casos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:primeos N renglones

Publicado por Jorge-DBA (123 intervenciones) el 07/09/2004 17:52:37
Gerardo.

Siento que tu query esta mal diseñado, creo entender el problema y lo que tienes que realizar es un subquery. Extrae primero todos los registros y los ordenas de forma descendente , y en tu From ("SUBQUERY") discriminas los datos con el ROWNUM

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:primeos N renglones

Publicado por Gerardo Castillo (2 intervenciones) el 07/09/2004 23:21:10
Primero, agradezco tu respuesta.
Sobre mi query, en realidad estoy hablando de cualquier query, como en la discusion que viene mas abajo en este foro buscando ROWNUM en el tema "acceso al ultimo registro de cualquier query".
Sobre la opcion que me das, tengo la version 8.0.5 de Oracle y no puedo usar order by en los subquery ni en las vistas y no depende de mi para actualizar la version.
Una de las discusiones en este foro indica que no existe forma de filtrar con Oracle los primeros N registros respetando los ordenes del query como lo hace el TOP de Microsoft SQL, por eso insisto para ver si realmente es cierto o en realidad existe algun equivalente. Todas las discusiones terminan con el ROWNUM el cual para mi no es suficiente porque no respeta el orden del Query, el cual podria ser tan complicado como se requiera y en los ordenes necesarios, el punto clave aqui es filtar los primeros N registros de cualquier query.
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar