2013-10-10 11 views
5

Ich verwende SQL Server 2012 für meine Datenbank. Jetzt habe ich einen Tisch mit folgenden Details.Anzeigen von zwei Spaltenwerten als zwei Zeilen in SQL

ID    COLUMN1    COLUMN2 
1     A     B 

Jetzt möchte ich so zur Folge haben.

ID     Values 
1      A 
1      B 

Kann mir jemand vorschlagen, wie zu tun? Ich weiß, dass ich mit Pivot oder Unipot tun kann. aber ich weiß nicht wie? Und gibt es einen anderen Weg, dies zu tun?

Bitte helfen Sie mir, Abfrage für die gleiche zu schreiben.

Vielen Dank im Voraus.

Antwort

4

Sie können UNPIVOT verwenden um das Endergebnis zu erhalten:

select id, value 
from yourtable 
unpivot 
(
    value 
    for col in (COLUMN1, COLUMN2) 
) u; 

SQL Fiddle with Demo

Siehe Oder Sie können CROSS um es zu bekommen verwenden GILT:

select id, value 
from yourtable 
cross apply 
(
    values ('COLUMN1', COLUMN1), ('COLUMN2', COLUMN2) 
) c (col, value) 

SQL Fiddle with Demo Siehe

3
select id, col1 as value 
from your_table 
union all 
select id, col2 as value 
from your_table 
Verwandte Themen