【发布时间】:2020-11-26 01:51:24
【问题描述】:
简单来说,表 (t1) 如下所示:
id hours dollars
-----------------------
abc 4 40
我想从如下所示的表格中获取结果:
abcHours 4 0
abcDollars 0 40
谢谢
【问题讨论】:
标签: sql sql-server sql-server-2008-r2 unpivot
简单来说,表 (t1) 如下所示:
id hours dollars
-----------------------
abc 4 40
我想从如下所示的表格中获取结果:
abcHours 4 0
abcDollars 0 40
谢谢
【问题讨论】:
标签: sql sql-server sql-server-2008-r2 unpivot
您可以使用cross apply 取消透视:
select x.*
from mytable t
cross apply (values
(concat(id, 'Hours' ), hours, 0 ),
(concat(id, 'Dollars'), 0, dollars)
) as x(newid, hours, dollars)
【讨论】:
您可以尝试简单的查询,使用运算符 Union:
Select 'abcHours' as abcHour, hours as Hour, 0 as dollar
Union all
Select 'abcDollars', 0, dollars
【讨论】: