SQL Server 2008 R2 将一行结果拆分为两行
Posted
技术标签:
【中文标题】SQL Server 2008 R2 将一行结果拆分为两行【英文标题】:SQL Server 2008 R2 split one row of results into two rows 【发布时间】:2020-11-26 01:51:24 【问题描述】:简单来说,表 (t1) 如下所示:
id hours dollars
-----------------------
abc 4 40
我想从如下所示的表格中获取结果:
abcHours 4 0
abcDollars 0 40
谢谢
【问题讨论】:
【参考方案1】:您可以使用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)
【讨论】:
【参考方案2】:您可以尝试简单的查询,使用运算符 Union:
Select 'abcHours' as abcHour, hours as Hour, 0 as dollar
Union all
Select 'abcDollars', 0, dollars
【讨论】:
以上是关于SQL Server 2008 R2 将一行结果拆分为两行的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 2008 R2 - 将查询结果保存为 phpmyadmin 可读的 SQL 语句?
将 SQL Server 2008 r2 降级到 SQL Server 2008