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.

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top