You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

T-SQL如何通过CROSS APPLY同时Unpivot Name、Value多列获取目标结果

多组列同时逆透视(Unpivot)实现方案

你已经掌握了用CROSS APPLY + VALUES实现单组列逆透视的方法,要同时处理Name组、Value组的列,不需要做两次单独的逆透视操作,直接在单次CROSS APPLY的VALUES构造中配对同序号的Name和Value列即可,既能保证两组列的对应关系准确,执行效率也更高。

对应实现代码如下:

SELECT 
    cat,
    b.NameCat,
    b.Names,
    b.ValueCat,
    b.[Values]
FROM #temp
CROSS APPLY (
    VALUES
        (Name1, 'Name1', Value1, 'Value1'),
        (Name2, 'Name2', Value2, 'Value2')
) b(Names, NameCat, [Values], ValueCat)

该代码会将原始#temp表的每一行拆分为2行输出,每行对应一组同序号的Name、Value列数据,完全匹配你需要的目标结果结构。

内容的提问来源于stack exchange,提问作者Zayfaya83

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 06:09:03