2016-07-12 10 views
0

I Tabelle mit einer einzigen Spalte wie dieses:Erstellen Tabelle mit Spaltennamen aus einer anderen Tabellen Spaltendaten

--------- 
| col | 
--------- 
| A | 
| B | 
| C | 
--------- 

Ich möchte wie dies eine neue Tabelle mit den folgenden Spaltennamen erstellen:

------------------- 
| A | B | C | 
------------------- 

Irgendwelche Vorschläge? Danke vielmals.

+0

Ihre Frage ist unklar. Bitte bearbeiten Sie es mit den richtigen Anforderungen – MusicLovingIndianGirl

+1

Eine Möglichkeit, wie Sie dies erreichen können, ist mit dynamischen SQL;) –

+1

Sie sollten Pivot-Tabelle verwenden http://StackOverflow.com/A/15931734/6468577 – NEER

Antwort

3

Ein Weg ist, dynamische SQL zu verwenden.
Unter der Annahme, Datentyp int für alle Spalten, können Sie etwas tun:

Erstellen und Probentisch (Bitte speichern uns dieser Schritt in Ihrer zukünftigen Fragen) füllen:

DECLARE @T table 
(
    col char(1) 
) 

INSERT INTO @T VALUES ('a'), ('b'), ('c') 

Erstellen Sie das dynamische sql:

DECLARE @Sql nvarchar(max) = 'CREATE TABLE YourNewTableName (' 

SELECT @Sql = @Sql + col +' int,' 
FROM @T 


SET @Sql = LEFT(@Sql, LEN(@Sql) - 1) +');' 
--Print @sql 

es Execute (Sie werden wahrscheinlich wollen, dass es vor dem drucken sicherstellen, dass es richtig ist):

EXEC(@Sql) 
+1

Print-Anweisung hinzugefügt. Hoffe, dass Sie nichts dagegen haben;) –

+0

Nein, stört mich überhaupt nicht :-) –

+0

Es ist wahr, nur Daten einzigartig. – NEER

Verwandte Themen