Можете да използвате UNPIVOTкод>
функция за превръщане на колоните в редове:
select id, value
from yourtable
unpivot
(
value
for col in ([fName], [lName], [Address], [PostCode], [ContactNumber])
) unpiv
Вижте SQL Fiddle с демонстрация .
Отмяната на завъртането ще изисква типът данни във всички колони да бъде еднакъв. Така че може да се наложи да извършите cast
/конвертиране
във всички колони с различни типове данни, подобни на това:
select id, value
from
(
select id, [fName], [lName], [Address], [PostCode],
cast([ContactNumber] as varchar(15)) [ContactNumber]
from yourtable
) src
unpivot
(
value
for col in ([fName], [lName], [Address], [PostCode], [ContactNumber])
) unpiv;
Вижте SQL Fiddle с демонстрация .
Започвайки от SQL Server 2008, това може да бъде написано и с помощта на CROSS APPLY
с VALUES
:
select t.id,
c.value
from yourtable t
cross apply
(
values(fName),
(lName),
(Address),
(PostCode),
(cast(ContactNumber as varchar(15)))
) c (value)
Вижте SQL Fiddle с демонстрация