Du kan bruge UNPIVOT
funktion til at omdanne kolonnerne til rækker:
vælg id, værdi fra dintableunpivot( værdi for col in ([fName], [lName], [Address], [PostCode], [Contact Number])) unpiv
Se SQL Fiddle with Demo .
Unpivot vil kræve, at datatypen på alle kolonnerne er den samme. Så du skal muligvis udføre en cast
/konverter
på alle kolonner med forskellige datatyper, der ligner denne:
vælg id, værdifra( vælg id, [fNavn], [lNavn], [Adresse], [Postnummer], cast([Kontaktnummer] som varchar(15)) [Kontaktnummer] fra din tabel) srcunpivot( værdi for col in ([fName], [lName], [Address], [PostCode], [Contact Number])) unpiv;
Se SQL Fiddle with Demo .
Fra og med SQL Server 2008 kan dette også skrives ved hjælp af en CROSS APPLY
med en VALUES
:
vælg t.id, c.valuefrom yourtable tcross apply( values(fName), (lName), (Address), (PostCode), (cast(Contact Number as varchar(15)))) c (værdi )