Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Oracle (http://www.forosdelweb.com/f100/)
-   -   explicar codigo (http://www.forosdelweb.com/f100/explicar-codigo-505186/)

claa_16 13/07/2007 08:47

explicar codigo
 
Hola e encontrado en internet una consulta que me regresa una cantidad determinada de registros, por ejemplo solo los 10 primeros registros de una tabla pero la verdad casi no le entiendo quisiera si alguien me la podria explicar para que me quede mas clara.


Select * from (select rownum as NombreColumna, f.* from comentarios f ) where NombreColumna>1 and NombreColumna<=10;

agradeceria su ayuda....... gracias

jc3000 13/07/2007 10:45

Re: explicar codigo
 
Aparte de que esa query solo te trae 9 ¿ que es lo que no entiendes exactamente ?

claa_16 16/07/2007 09:00

Re: explicar codigo
 
pues a lo que no le entiendo es en el pedaso de codigo donde dice
f.* from comentarios f

que es lo que se hace con el f.* a ese pedaso es el que no le entiendo.

espero y me entiendas lo que te quise decir y me puedas ayudar gracias

PosProdukcion 16/07/2007 09:36

Re: explicar codigo
 
El * selecciona TODAS las columnas de una tabla, la f es un alias que se le ha dado a la tabla

Código:

Select * from TABLA
es lo mismo que
Código:

Select T.* from TABLA T
Y con ROWNUM < valor puedes limitar el número de filas que devolverá la query, UN EJEMPLO: si quieres los 10 valores más baratos (por poner ejemplo), la query de dentro debería tener ORDER by precio, para que al coger sólo 10 coja los de precio menor

MACGREGOR 17/07/2007 06:33

Re: explicar codigo
 
Hola,

Esa consulta habría funcionado perfectamente si pones solo

select * from tabla t

el hecho de utilizar un alias (t) y luego poner t.*
puede parecer un poco absurdo o innecesario, pero es sumamente útil en muchos casos.

Imagina que haces una consulta que cruza 5 tablas.

select *
from tabla1 t1,
tabla2 t2,
tabla3 t2,
tabla4 t4,
tabla5 t5
where ......

Esta select te devolvería TODOS los campos de las 5 tablas, pero podrías necesitar hacer la misma select solo mostrando los campos de la primera y la última tabla.

" select t1.*, t5.* from ....." te ahorraría el trabajo de escribir todos y cada uno de los campos de estas dos tablas, pero lo más importante a mi juicio es que queda mucho más claro y evitas errores tontos como poner el alias de una tabla que no corresponde.

Un saludo.

claa_16 18/07/2007 09:53

Re: explicar codigo
 
Hola pues ya con estas explicaciones ya me quedo muy claro lo que hace la consulta y que es lo que se hace con f.* from comentarios f.

muchas gracias por su ayuda de verdad me fue de gran utilidad.


gracias


La zona horaria es GMT -6. Ahora son las 20:18.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.