SQL Server - columnas a fila

 
Vista:

columnas a fila

Publicado por yomero (8 intervenciones) el 29/08/2007 05:04:56
Hola a todos, tengo una duda y ojala alguno de ustedes pueda ayudarme a resolverla

Tengo una tabla llamada Opciones como la siguiente:

Id descripcion Opcion1 Opcion 2 Opcion3 Opcion4 Opcion5
----------------------------------------------------------------------------------------
1 Prueba1 NULL dos tres NULL cinco
2 Prueba2 A B NULL D E

Tengo una consulta la cual me devuelve una fila con varias columnas, algo asi

Select Opcion1, Opcion 2, Opcion3, Opcion4, Opcion5 From Opciones Where Id = 1

y da como resultado

Opcion1 Opcion2 Opcion3 Opcion4 Opcion5
-----------------------------------------------------------------
NULL dos tres NULL cinco

Lo que deseo es que en vez de devolverme como resultado una sola fila con varias columnas, me devuelva como resultado una columna con varias fila obviamente omitiendo los valores nulos, algo asi como:

OpcionesVertical
---------------------
dos
tres
cinco

cabe mencionar que unicamente me interesan los campos Opcion1 a Opcion5 de la tabla, los demas campos salen sobrando, así como unicamente me interesa la fila filtrada por el Id indicado

Muchas gracias por su ayuda
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:columnas a fila

Publicado por Isaias (3308 intervenciones) el 29/08/2007 18:03:08
Yomero

Tienes un problema de diseño con tu tabla, eso a simple vista.

¿Que base de datos ocupas?
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:columnas a fila

Publicado por yomero (8 intervenciones) el 30/08/2007 00:04:53
Gracias por responder...

Lamentablemente la tabla ya esta hecha y pues tengo que trabajar con ella. Estoy utilizando sql server 2005.
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:columnas a fila

Publicado por Isaias (3308 intervenciones) el 30/08/2007 02:06:30
En ese caso, consulta en tu ayuda en linea, la clausula UNPIVOT.

CREATE TABLE pvt (VendorID int, Emp1 int, Emp2 int,
Emp3 int, Emp4 int, Emp5 int)
GO
INSERT INTO pvt VALUES (1,4,3,5,4,4)
INSERT INTO pvt VALUES (2,4,1,5,5,5)
INSERT INTO pvt VALUES (3,4,3,5,4,4)
INSERT INTO pvt VALUES (4,4,2,5,5,4)
INSERT INTO pvt VALUES (5,5,1,5,5,5)
GO
--Unpivot the table.
SELECT VendorID, Employee, Orders
FROM
(SELECT VendorID, Emp1, Emp2, Emp3, Emp4, Emp5
FROM pvt) p
UNPIVOT
(Orders FOR Employee IN
(Emp1, Emp2, Emp3, Emp4, Emp5)
)AS unpvt
GO
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