Question

Mon tableau contient les colonnes suivantes:

A  |  B  |  C  |  D  |  E  |  F  

Je veux affiche cela comme suit:

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

Comme vous pouvez le voir je veux afficher les colonnes sous forme de paires avec un nom de colonne personnalisée. Les paires sont la colonne A et B, colonne C et D et de la colonne C et D.

Était-ce utile?

La solution

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

Autres conseils

Si je vous correctement, vous pouvez le faire comprendre avec un syndicat:

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

Si vos types de données ne sont pas les mêmes pour les colonnes correspondantes alors vous aurez besoin de convertir le premier type de données, donc quelque chose comme:

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

Ce ne sera pas l'échelle d'un milliard de colonnes, mais ...

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

Cette requête va supprimer les doublons si. Donc, dire qu'il ya un enregistrement dans la table

  

Bonjour | monde | Bonjour | monde | Bonjour | Monde

Ma sélection ne sera de retour

  

Bonjour | Monde

Sambo reviendront tous les trois ...

Dans Sql Server 2005 opérateur Unpivot peut résoudre votre problème. Unpivot convertis des colonnes en lignes dans le serveur SQL 2005 .

it helps

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top