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