Sql server 在SQL Server中不使用联合的列到行
我希望输出为Sql server 在SQL Server中不使用联合的列到行,sql-server,Sql Server,我希望输出为 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')
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'
这将真正帮助您:
SELECT t.*
FROM temp
OUTER APPLY
(
VALUES
(tempid, tempname, option1),
(tempid, tempname, option2),
(tempid, tempname, option3)
) t(tempid, tempname, option1)
试试这个
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)
谢谢vignesh它帮助了。。。再次感谢你的帮助。
Select tempid,tempname,OptionVal
From #temp
UNPIVOT (OptionVal FOR Options IN (option1, option2, option3) ) AS T