Programación en castellano
Inicio > Foros > Oracle > TOP 10 en oracle
-Foros de debate

Oracle
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

TOP 10 en oracle
Enviado por rikardoperu el día 10 de noviembre de 2005

Hola,
Me puende decir si exita la funcion TOP en PL/SQL de oracle, ya que necesito sacar el top 10, el top 5 de mi tabla de ventas, y no se como empezar espero me puedan ayudar gracias
atte
Ricardo Salazar

 
Re: TOP 10 en oracle
Enviado por Carlos el día 10 de noviembre de 2005

>>Me puende decir si exita la funcion TOP en PL/SQL de oracle

NO. Esto no es SQLServer.

Saludos.

Carlos.

 
Re: Re: TOP 10 en oracle
Enviado por rikardoperu el día 10 de noviembre de 2005

Gracias por tu respuesta Carlos , pero... me podrian ayudar como puedo hacer la setencias para arrojar la respuesta que busco ?

Gracias

 
Re: Re: Re: TOP 10 en oracle
Enviado por desa el día 10 de noviembre de 2005

La verdad es que no sé lo que hace TOP, me imagino que te sacará los valores más altos de la columna, si es así se me ocurre que podría apoyarte con ROWNUM:
SELECT ROWNUM, COLUMNA FROM TABLA WHERE ROWNUM < 10 ORDER BY COLUMNA DESC;

 
Re: Re: Re: Re: TOP 10 en oracle
Enviado por Carlos el día 10 de noviembre de 2005

>>SELECT ROWNUM, COLUMNA FROM TABLA WHERE ROWNUM < 10 ORDER BY COLUMNA DESC;

¡Vaya! Va a ser verdad que tu 'post' del otro día iba en serio...

ROWNUM se evalúa ANTES que ORDER BY, con lo que tu solución no vale.

Saludos.

Carlos.

 
Re: Re: Re: Re: Re: TOP 10 en oracle
Enviado por ragamfl el día 10 de noviembre de 2005

Carlos no seas tan hijo e puta y si no tienes la respuesta pues no pongas nada.

Salu2

Raul
pdta: pikardo en un toq t lo mano a tu mail

 

Re: Re: Re: Re: Re: TOP 10 en oracle
Enviado por desa el día 10 de noviembre de 2005

Prueba Carlos, prueba Carlos, prueba Carlos...
Me imagino que esto lo habras escuchado más de una vez después de dar tus diagnosticos...

 

Re: Re: Re: Re: Re: TOP 10 en oracle
Enviado por FanDeDesa el día 10 de noviembre de 2005

>>ROWNUM se evalúa ANTES que ORDER BY, con lo que tu solución no vale.

Y si se evalúa ANTES, ¿por que funciona lo que dice desa: SELECT ROWNUM, COLUMNA FROM TABLA WHERE ROWNUM < 10 ORDER BY COLUMNA DESC;?

 
Re: Re: Re: Re: Re: Re: TOP 10 en oracle
Enviado por andrewsreid el día 10 de noviembre de 2005

Querido Ricardo,

Hay dos maneras para responder a tu pregunta:
(1) La respuesta fácil que llamo <<The easy way>> (porque soy inglés)

SQL> DOC
DOC>The easy way to select the bottom/top N rows:
DOC>#
SQL> SELECT table_name FROM
2 (SELECT table_name FROM dba_tables ORDER BY 1)
3 WHERE rownum <= 10;

TABLE_NAME
------------------------------
ACCESS$
APPLY$_CONF_HDLR_COLUMNS
APPLY$_DEST_OBJ
APPLY$_DEST_OBJ_CMAP
APPLY$_DEST_OBJ_OPS
APPLY$_ERROR
APPLY$_ERROR_HANDLER
APPLY$_SOURCE_OBJ
APPLY$_SOURCE_SCHEMA
APPROLE$

10 rows selected.

SQL> Input truncated to 9 characters
SPOOL OFF

(2) La respuesta difícil que llamo <<The hard way>>

SQL> DOC
DOC>The hard way to select the bottom/top N rows:
DOC>#
SQL> SELECT table_name FROM
2 dba_tables x WHERE
3 (SELECT COUNT(*) FROM dba_tables WHERE table_name <= x.table_name) <= 10
4 ORDER BY 1;

TABLE_NAME
------------------------------
ACCESS$
APPLY$_CONF_HDLR_COLUMNS
APPLY$_DEST_OBJ
APPLY$_DEST_OBJ_CMAP
APPLY$_DEST_OBJ_OPS
APPLY$_ERROR
APPLY$_ERROR_HANDLER
APPLY$_SOURCE_OBJ
APPLY$_SOURCE_SCHEMA
APPROLE$

10 rows selected.

SQL> Input truncated to 9 characters
SPOOL OFF

Buena suerte,

Andrew

 
Re: Re: Re: Re: Re: Re: Re: TOP 10 en oracle
Enviado por rikardoperu el día 11 de noviembre de 2005

muchas gracias a todos ...
Menos a carlos XD
atte
ricardo salazar

 
Re: Re: Re: Re: Re: Re: Re: Re: TOP 10 en oracle
Enviado por overhouses el día 12 de mayo de 2006

puede que me enganche tarde, pero la forma más correcta de las que te pasaron es esta:

SELECT table_name FROM (SELECT table_name FROM dba_tables ORDER BY 1) WHERE rownum <= 10;

si bien la otra anda, demoraría muchísimo.

 
Re: Re: Re: Re: Re: Re: Re: Re: Re: TOP 10 en oracle
Enviado por pet el día 1 de junio de 2006

no funciona, cuando traigo 50 o 100, el mismo registro aparece en distinta posicion :S

 

Re: Re: Re: Re: Re: Re: Re: Re: Re: TOP 10 en oracle
Enviado por pet el día 2 de junio de 2006

Parece que asi funciona

SELECT DATO_ID, DATO_DESC, DATO_FECHA

FROM (SELECT ROWNUM AS R, DATO_ID, DATO_DESC, DATO_FECHA

FROM (SELECT DATO_ID, DATO_DESC, DATO_FECHA

FROM PAGINADODATOS

WHERE (DATO_ID < indice)

ORDER BY DATO_ID DESC)P

) P

WHERE (R <= filas)

 
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: TOP 10 en oracle
Enviado por Neo el día 1 de julio de 2008

SELECT * FROM {TABLA}
ROWNUM=10

eso es todo

 






Re: Re: Re: Re: Re: TOP 10 en oracle
Enviado por lucho el día 7 de julio de 2006

perros cabrones no peleen, ninguno de los dos saben

 






Tienda
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad
Mantenida por: Claudio y Dani.

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | amor | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | gratis | posicionamiento en buscadores | decoración libre | gifs animados