Pergunta
Minha tabela tem as seguintes colunas:
A | B | C | D | E | F
Eu quero exibe esta como a seguir:
MyColumn | MyColumn2
A | B
C | D
E | F
Como você pode ver eu quero mostrar as colunas como pares com um nome de coluna personalizado. Os pares são uma coluna e B, coluna C e D e coluna C e D.
Solução
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
Outras dicas
Se eu estou entendendo você corretamente, você pode fazer isso com uma união:
SELECT A as MyColumn, B as MyColumn2
UNION
SELECT C as MyColumn, D as MyColumn2
UNION
SELECT E as MyColumn, F as MyColumn2
Se os seus tipos de dados não são as mesmas para as colunas correspondentes, em seguida, você vai precisar para converter o tipo de dados em primeiro lugar, então 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
Isto não será ampliado para um bilhão de colunas, mas ...
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 irá remover as duplicatas embora. Então, dizer que há um registro na tabela
Olá | mundo | Olá | mundo | Olá | Mundial
Meu escolher irá retornar apenas
Olá | Mundial
Sambo de retornará todos os três ...
No SQL Server 2005 operador Não Dinâmica pode resolver seu problema. Não Dinâmica convertidos colunas para linhas em sql server 2005 .
Hope isso ajuda