如何在交叉应用第一列时将行反透视为列?

问题描述 投票:0回答:1

我有以下样本数据:

CASA    31-jan-2023     28-Feb-2023
-----------------------------------
CA      56.48           57.17
SA      18.74           17.26
TD      12.75           12.54

我想要的输出是:

CASA    Date            Deposit
-------------------------------
CA      31-jan-2023     56.48
CA      28-Feb-2023     57.17
SA      31-jan-2023     18.74 
SA      28-Feb-2023     17.26
TD      31-jan-2023     12.75
TD      28-Feb-2023     12.54

我已经尝试过

UNPIVOT
UNION ALL
,但这并没有得到我想要的结果。帮助!

sql sql-server unpivot
1个回答
0
投票

要反转固定的列列表,我会推荐

values
cross apply

select t.casa, x.*
from mytable t
cross apply ( values 
    ('2023-01-31', t.[31-jan-2023]),
    ('2023-01-31', t.[28-Feb-2023])
) x(date, deposit)
© www.soinside.com 2019 - 2024. All rights reserved.