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

Cambiar titulo de columna a Fila

Estas en el tema de Cambiar titulo de columna a Fila en el foro de SQL Server en Foros del Web. Buen día Me pueden apoyar con el siguiente problema: Necesito cambiar la manera en que se muestra el resultado de una consulta de tal manera ...
  #1 (permalink)  
Antiguo 05/02/2014, 09:28
 
Fecha de Ingreso: junio-2012
Mensajes: 233
Antigüedad: 12 años, 5 meses
Puntos: 3
Pregunta Cambiar titulo de columna a Fila

Buen día

Me pueden apoyar con el siguiente problema:

Necesito cambiar la manera en que se muestra el resultado de una consulta de tal manera que en ves de desplegar los registros con los titulos o encabezados de las columnas ahora se muestren como filas y que se repitan por cada id del registro de una persona. Ejemplo:


Desplegado por Default:

id nombre apellido
1 juan obregon
2 pedro Martinez
3 Jose Ambriz
4
5
6
.. .. ..



Deplagado Deseado:

id 1
nombre Juan
Apellido Obregon
id 2
nombre Pedro
Apellido Martinez
id 3
nombre Jose
Apellido Ambriz


Gracias por su ayuda,

Saludos
  #2 (permalink)  
Antiguo 05/02/2014, 09:52
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Cambiar titulo de columna a Fila

eso no lo puedes hacer desde la base de datos, eso es de la capa de presentacion.....te diria que con una columna pivote, pero no se puede pivotear la informacion como la deseas......
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 05/02/2014, 10:04
 
Fecha de Ingreso: junio-2012
Mensajes: 233
Antigüedad: 12 años, 5 meses
Puntos: 3
Información Respuesta: Cambiar titulo de columna a Fila

Cita:
Iniciado por Libras Ver Mensaje
eso no lo puedes hacer desde la base de datos, eso es de la capa de presentacion.....te diria que con una columna pivote, pero no se puede pivotear la informacion como la deseas......
Uso vb net 2008 esta duda también la puse para ver como se puede hacer desde el control GridView en ---> http://www.forosdelweb.com/f29/gridv...filas-1090231/


Gracias
  #4 (permalink)  
Antiguo 05/02/2014, 10:25
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Cambiar titulo de columna a Fila

mmm creo que se puede hacer desde la base de datos, podria quedar de esta manera:
Código SQL:
Ver original
  1. CREATE TABLE new_test(
  2. id INT,
  3. nombre VARCHAR(20),
  4. apellido VARCHAR(30)
  5. )
  6.  
  7. CREATE TABLE #resultado(
  8. columna1 VARCHAR(20),
  9. columna2 VARCHAR(30)
  10. )
  11.  
  12. INSERT INTO new_test VALUES (1,'yo','tu')
  13. INSERT INTO new_test VALUES (2,'el','nos')
  14.  
  15.  
  16.  
  17. SELECT *,IDENTITY(INT,1,1) AS rn INTO #temp2 FROM new_test
  18.  
  19. DECLARE @x INT
  20. SET @x=1
  21. while @x<=(SELECT COUNT(*) FROM #temp2)
  22. BEGIN
  23. INSERT INTO #resultado VALUES ('id',(SELECT CONVERT(VARCHAR(20),id) FROM #temp2 WHERE rn=@x))
  24. INSERT INTO #resultado VALUES ('nombre',(SELECT nombre FROM #temp2 WHERE rn=@x))
  25. INSERT INTO #resultado VALUES ('apellido',(SELECT apellido FROM #temp2 WHERE rn=@x))
  26. SET @x=@x+1
  27. END
  28.  
  29. SELECT * FROM #resultado

digo tomando en cuenta que los datos que necesitas y los nombres de columnas son fijos :)

ahora si quieres hacerlo para cualquier tabla y cualquier numero de campos

Código SQL:
Ver original
  1. CREATE TABLE new_test(
  2. id VARCHAR(20),
  3. nombre VARCHAR(20),
  4. apellido VARCHAR(30),
  5. direccion VARCHAR(100)
  6. )
  7.  
  8.  
  9. CREATE TABLE ##resultado(
  10. columna1 VARCHAR(20),
  11. columna2 VARCHAR(30)
  12. )
  13.  
  14. INSERT INTO new_test VALUES ('1','yo','tu','mi direccion')
  15. INSERT INTO new_test VALUES ('2','el','nos','otra direccion')
  16.  
  17. SELECT name,IDENTITY(INT,1,1) AS rn INTO ##temp FROM sys.all_columns WHERE object_id IN (SELECT object_id FROM sys.all_objects WHERE TYPE='U' AND name='new_test')
  18.  
  19. SELECT *,IDENTITY(INT,1,1) AS rn INTO ##temp2 FROM new_test
  20.  
  21.  
  22. DECLARE @x INT
  23. DECLARE @y INT
  24. DECLARE @query nvarchar(MAX)
  25. SET @x=1
  26.  
  27. while @x<=(SELECT COUNT(*) FROM ##temp2)
  28. BEGIN
  29. SET @y=1
  30.     while @y<=(SELECT COUNT(*) FROM ##temp)
  31.         BEGIN
  32.             SET @query='insert into ##resultado values (' + CHAR(39) + (SELECT name FROM ##temp WHERE rn=@y) + CHAR(39) + ',(select ' + (SELECT name FROM ##temp WHERE rn=@y) + ' from ##temp2 where rn=' + CONVERT(VARCHAR(20),@x) + '))'         
  33.             EXECUTE sp_executesql @query           
  34.             SET @y=@y+1
  35.        END
  36. SET @x=@x+1
  37. END
  38.  
  39. SELECT * FROM ##resultado
  40.  
  41.  
  42. DROP TABLE ##temp
  43. DROP TABLE ##temp2
  44. DROP TABLE ##resultado
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Última edición por Libras; 05/02/2014 a las 10:37
  #5 (permalink)  
Antiguo 05/02/2014, 10:41
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Cambiar titulo de columna a Fila

Cita:
Iniciado por antvo Ver Mensaje
Uso vb net 2008 esta duda también la puse para ver como se puede hacer desde el control GridView en ---> http://www.forosdelweb.com/f29/gridv...filas-1090231/


Gracias
Eso es off-topic en el foro.
La respuesta de libras te da una solucion de BBDD, pero si la quieres por programación deberás preguntar en el foro correspondiente a .Net. En este sólo se trata de SQL y SQL Server.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 05/02/2014, 11:06
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Cambiar titulo de columna a Fila

lo que te quiere decir el compañero es que tienes una respuesta para la BBDD en este foro y que no pongas ligas hacia otros foros dentro del tema :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: columnas, filas, querys, server
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:35.