如何从 4 个变量中得到 SQL 中的两个变量?

How make from 4 variables only two in SQL?

我有以下table

并希望达到以下结果

因此,组 1 和组 2 被分组到 GROUP,quantity1/2 被分组到 QUANTITY。我尝试使用交叉应用,但 table 开始变得太大并且重复。

您可以应用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,不同的操作。

在 SQL 服务器中,我建议 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 更有效,因为 table 只扫描一次。