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.
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