Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > Oracle

Respuesta
 
Herramientas Desplegado
Antiguo 13-jul-2007, 08:47   #1 (permalink)
claa_16 ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2006
Mensajes: 39
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
claa_16 está desconectado   Responder Citando
Antiguo 13-jul-2007, 10:45   #2 (permalink)
jc3000 ha deshabilitado el karma
 
Fecha de Ingreso: junio-2007
Mensajes: 278
Re: explicar codigo

Aparte de que esa query solo te trae 9 ¿ que es lo que no entiendes exactamente ?
jc3000 está desconectado   Responder Citando
Antiguo 16-jul-2007, 09:00   #3 (permalink)
claa_16 ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2006
Mensajes: 39
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
claa_16 está desconectado   Responder Citando
Antiguo 16-jul-2007, 09:36   #4 (permalink)
PosProdukcion tiene algunos puntos positivos de karma
 
Avatar de PosProdukcion
 
Fecha de Ingreso: noviembre-2004
Mensajes: 509
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
PosProdukcion está desconectado   Responder Citando
Antiguo 17-jul-2007, 06:33   #5 (permalink)
MACGREGOR está en el buen camino
 
Avatar de MACGREGOR
 
Fecha de Ingreso: enero-2005
Mensajes: 89
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.
MACGREGOR está desconectado   Responder Citando
Antiguo 18-jul-2007, 09:53   #6 (permalink)
claa_16 ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2006
Mensajes: 39
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
claa_16 está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 21:26.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93