create table #temp
(tempid int,
tempname nvarchar(50),
option1 nvarchar(50),
option2 nvarchar(50),
option3 nvarchar(50)
)
insert into #temp (tempid, tempname, option1, option2, option3)
values (1, 'YesNoCancel', 'Yes', 'No', 'Cancel')
我希望输出为
tempid tempname options
1 'YesNOCancel' 'yes'
1 'YesNOCancel' 'no'
1 'YesNOCancel' 'cancel'
答案 0 :(得分:0)
尝试这样
SELECT t.*
FROM temp
OUTER APPLY
(
VALUES
(tempid, tempname, option1),
(tempid, tempname, option2),
(tempid, tempname, option3)
) t(tempid, tempname, option1)
答案 1 :(得分:0)
这对你有帮助:
SELECT t.tempid,
x.tempname,
x.option1
FROM #temp t
CROSS APPLY
(
VALUES
(tempid, tempname, option1),
(tempid, tempname, option2),
(tempid, tempname, option3)
) x (tempid, tempname, option1)
答案 2 :(得分:0)
只需尝试这个
Select tempid,tempname,OptionVal
From #temp
UNPIVOT (OptionVal FOR Options IN (option1, option2, option3) ) AS T
<强> FIDDLE DEMO 强>