【发布时间】:2021-03-28 22:31:15
【问题描述】:
【问题讨论】:
标签: sql sql-server unpivot lateral-join
【问题讨论】:
标签: sql sql-server unpivot lateral-join
在 SQL Server 中,我会推荐 cross apply 取消透视:
select t.date, t.fund, x.*
from mytable t
cross apply (values (t.group1, t.quantity1), (t.group2, t.quantity2)) as x(grp, qty)
横向连接是一种强大的工具。这比union all 更高效,因为该表只被扫描一次。
【讨论】:
您可以应用UNION 操作,如下:
SELECT date, fund, group1 as grp, quantity1 as quantity
FROM yourtable
UNION ALL
SELECT date, fund, group2, quantity2
FROM yourtable
我使用了UNION ALL,因为你的 group1 和 group2 总是不同的(作为你的数据样本),所以你不应用 ALL,distinct 操作。
【讨论】: