Pregunta

La tabla tiene las siguientes columnas:

A  |  B  |  C  |  D  |  E  |  F  

Quiero la muestra como sigue:

MyColumn  |  MyColumn2
  A       |    B
  C       |    D
  E       |    F

Como se puede ver que quiero mostrar las columnas en forma de pares con un nombre de columna personalizada. Los pares son la Columna A y B, la columna C y D y la columna C y D.

¿Fue útil?

Solución

select A as [Col 1], B as [Col 2] from table
union all 
select C,D from table 
union all 
select E,F from table

Otros consejos

Si te lo estoy entendiendo correctamente, puede hacer esto con una unión:

SELECT A as MyColumn, B as MyColumn2
UNION
SELECT C as MyColumn, D as MyColumn2
UNION
SELECT E as MyColumn, F as MyColumn2

Si los tipos de datos que no son los mismos para las columnas correspondientes a continuación, tendrá que convertir el tipo de datos primero, así que algo como:

SELECT CONVERT(VARCHAR(10), A) as MyColumn, CONVERT(VARCHAR(10), B) as MyColumn2
UNION
SELECT CONVERT(VARCHAR(10), C) as MyColumn, CONVERT(VARCHAR(10), D) as MyColumn2
UNION
SELECT CONVERT(VARCHAR(10), E) as MyColumn, CONVERT(VARCHAR(10), F) as MyColumn2

Esto no va a escalar a mil millones de columnas, pero ...

Select A as MyColumn, B as MyColumn2 from Table
UNION
Select C as MyColumn, D as MyColumn2 from Table
UNION
Select E as MyColumn, F as MyColumn2 from Table

Esta consulta eliminar los duplicados sin embargo. Así que dicen que hay un registro en la tabla

  

Hola | mundo | Hola | mundo | Hola | Mundial

Mi seleccione sólo devolverá

  

Hola | Mundial

Sambo volverán los tres ...

En SQL Server 2005 UNPIVOT operador puede resolver su problema. UNPIVOT conversos columnas a filas en SQL Server 2005 .

Espero que ayuda

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top