Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

SQL-convertir FILAS en COLUMNAS

Estas en el tema de SQL-convertir FILAS en COLUMNAS en el foro de Oracle en Foros del Web. hola, sabran si hay alguna manera sin meter tanto codigo (osea crear procedimientos etc) que en sql pueda yo convertir FILAS de un select en ...
  #1 (permalink)  
Antiguo 05/02/2007, 13:30
 
Fecha de Ingreso: abril-2006
Mensajes: 35
Antigüedad: 18 años
Puntos: 0
SQL-convertir FILAS en COLUMNAS

hola, sabran si hay alguna manera sin meter tanto codigo (osea crear procedimientos etc) que en sql pueda yo convertir FILAS de un select en COLUMNAS asi:
Actualmente:
cliente col (columna con dato a mostrar horizontal)
1111 dato1
1111 dato2
1111 dato3
1111 dato4

quisiera verlo asi :
cliente col1 col2 col3 col4
1111 dato1 dato2 dato3 dato4

Tengo Oracle10g y estoy haciendo el query en sqlplus para luego mandarlo a excel pero esta columna al tener varios valores me repite la informacion en este caso el numero de cliente y necesitan verlo como 1 solo registro.
Se los agradecere mucho a quien pueda ayudarme..
  #2 (permalink)  
Antiguo 05/02/2007, 14:24
Avatar de davidel  
Fecha de Ingreso: noviembre-2006
Mensajes: 17
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: SQL-convertir FILAS en COLUMNAS

Una solución rápida que se me ocurre sería

select
(select cliente from tabla where cliente = 'cliente') as cliente,
(select dato1 from tabla where cliente = 'cliente') as col1,
(select dato2 from tabla where cliente = 'cliente') as col2,
(select dato3 from tabla where cliente = 'cliente') as col3,
(select dato4 from tabla where cliente = 'cliente') as col4
  #3 (permalink)  
Antiguo 05/02/2007, 14:34
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 6 meses
Puntos: 3
Re: SQL-convertir FILAS en COLUMNAS

otra:

SELECT cliente,
min(Decode(col, 'dato1', campo1, '-')) AS col2,
min(Decode(col, 'dato2', campo2, '-')) AS col3,
min(Decode(col, 'dato3', campo3, '-')) AS col4,
min(Decode(col, 'dato4', campo4, '-')) AS col5
FROM tabla
group by cliente


sds
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #4 (permalink)  
Antiguo 17/08/2009, 17:31
 
Fecha de Ingreso: agosto-2009
Mensajes: 4
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Re: SQL-convertir FILAS en COLUMNAS

Cita:
Iniciado por davidel Ver Mensaje
Una solución rápida que se me ocurre sería

select
(select cliente from tabla where cliente = 'cliente') as cliente,
(select dato1 from tabla where cliente = 'cliente') as col1,
(select dato2 from tabla where cliente = 'cliente') as col2,
(select dato3 from tabla where cliente = 'cliente') as col3,
(select dato4 from tabla where cliente = 'cliente') as col4
Hola!!

Me gusto la solución que diste a la pregunta, solo tengo una duda... si necesitara comparar en el where el valor de uno de los resultados de la columna, como se haria??

Intente ponrle un Alias a cada una de las columnasy despues comparar una con un valor X... haciendo referencia al Alias... pero me marca un error diciendo que la columna no existe; ojala y me pudieras ayudar (si se pude)
  #5 (permalink)  
Antiguo 13/07/2010, 15:08
 
Fecha de Ingreso: julio-2010
Mensajes: 1
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: SQL-convertir FILAS en COLUMNAS

q tal soy nuevo en el foro y espero equivocarmen al postar aqui,

Bueno yo tengo un problema parecido al de Kespinoza pero lo mio es en oracle PL/SQL DEVELOPER

Es algo asi (cuando yo pongo "select * from telefonos" me arroja esto);

tel1 | tel2 | tel3 |...
DatoA 123 123 123
DatoB 123 123 123
DatoC 123 123 123

y lo necesito trasponer como lo hace excel (filas por columnas)
seria asi:

DatoA | DatoB | DatoC
Tel1 123 123 123
Tel2 123 123 123
Tel3 123 123 123

Eh encontrado los comandos pivot y rowtocol pero no eh podido aplicarlos a mi problema.

Saludos y gracias de antemano!
  #6 (permalink)  
Antiguo 14/07/2010, 10:38
Avatar de Wayern  
Fecha de Ingreso: septiembre-2008
Ubicación: Aguascalientes
Mensajes: 65
Antigüedad: 15 años, 7 meses
Puntos: 4
Respuesta: Re: SQL-convertir FILAS en COLUMNAS

Cita:
Iniciado por pepeman82 Ver Mensaje
Hola!!

Me gusto la solución que diste a la pregunta, solo tengo una duda... si necesitara comparar en el where el valor de uno de los resultados de la columna, como se haria??

Intente ponrle un Alias a cada una de las columnasy despues comparar una con un valor X... haciendo referencia al Alias... pero me marca un error diciendo que la columna no existe; ojala y me pudieras ayudar (si se pude)
No puedes usar los alias en la clausula where ni el group by.
  #7 (permalink)  
Antiguo 19/07/2010, 06:49
 
Fecha de Ingreso: enero-2007
Ubicación: Cali - Valle
Mensajes: 135
Antigüedad: 17 años, 3 meses
Puntos: 4
Respuesta: SQL-convertir FILAS en COLUMNAS

Hola a Todos...


Creo q este tema es muy similar a este: Consulta que fue resuelta aqui en este mismo foro.


Cabe aclarar que el uso de la instuccion pivot es a partir de la version 11 de oracle, si no tienes esa version puedes usar el ejemplo q deje ahi en ese mensaje para realizar el giro de filas a columnas.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




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