我的列看起来像这样:
UserID col1 col2 col3 col4
---------------------------------------
233432 45.2 34.2 '' 0.52
我希望它看起来像这样:
UserID colID value
-------------------------
233432 col1 45.2
233432 col2 34.2
233432 col3 ''
233432 col4 0.52
我在下面找到了这个链接:
但它并没有真正回答我的问题。我的问题。我正在使用Sql Server 2012。
答案 0 :(得分:2)
由于您使用的是SQL Server 2008+,因此您可以使用CROSS APPLY和VALUES来解决数据:
select t.userid,
c.colid,
c.value
from yourtable t
cross apply
(
values
('col1', col1),
('col2', col2),
('col3', col3),
('col4', col4)
) c (colid, value);
答案 1 :(得分:1)
Select UserID,'col1',col1 as 'value' from mytable
union
Select UserID,'col2',col2 from mytable
union
Select UserID,'col3',col3 from mytable
union
Select UserID,'col4',col4 from mytable