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

如何使用SQL JOIN语句将同表不同Code值转为新表列?

使用JOIN语句实现行转列需求

当然可以用JOIN语句实现这个行转列的需求,核心思路是对原表进行自连接,分别筛选不同Code对应的Amount值,最终合并成目标结构。

原表(Table1)结构与数据

PolicyCodeAmount
AXX10.00
AYY11.00
AZZ13.00

目标表结构与数据

PolicyCodeAmt1CodeAmt2CodeAmt3
A10.0011.0013.00

实现SQL代码

以下是通过自连接创建新表的示例(逻辑适配多数主流数据库,语法细节可根据数据库调整):

CREATE TABLE TargetTable AS
SELECT 
    t1.Policy,
    t1.Amount AS CodeAmt1,
    t2.Amount AS CodeAmt2,
    t3.Amount AS CodeAmt3
FROM Table1 t1
JOIN Table1 t2 ON t1.Policy = t2.Policy AND t2.Code = 'YY'
JOIN Table1 t3 ON t1.Policy = t3.Policy AND t3.Code = 'ZZ'
WHERE t1.Code = 'XX';

逻辑说明

  • 以筛选Code='XX'的记录作为主表t1,其Amount直接映射为CodeAmt1
  • 通过JOIN关联同表的t2,筛选Code='YY'的记录,提取对应Amount作为CodeAmt2
  • 再次关联同表的t3,筛选Code='ZZ'的记录,提取对应Amount作为CodeAmt3
  • 所有连接通过Policy字段约束,确保是同一保单下的匹配数据

如果存在多个Policy的场景,只要每个Policy下都有XX、YY、ZZ三种Code的记录,该写法就能自动适配生成对应行数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 22:46:16