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

Oracle SQL列映射实现:基于列1与列3匹配生成列4

解决方案:Oracle SQL实现新增匹配列

嘿,这个需求用自连接或者关联子查询都能轻松搞定,下面给你两种实用的方案:

方案1:使用LEFT JOIN自连接

这种方式可读性强,适合需要展示全量数据的场景,匹配不到的行会自动显示空值,正好符合你的需求:

SELECT 
    t1.column1,
    t1.column2,
    t1.column3,
    t2.column2 AS column4
FROM 
    your_table t1
LEFT JOIN 
    your_table t2 ON t1.column3 = t2.column1;

逻辑说明:

  • 把同一张表用别名t1(主表)和t2(匹配用的副表)区分开
  • 用主表的column3和副表的column1做关联条件
  • 匹配成功时,副表的column2就会作为column4的值,匹配失败则返回NULL(对应结果里的空单元格)

方案2:使用关联子查询

如果只是需要在查询结果中新增这一列,也可以用关联子查询的方式:

SELECT 
    column1,
    column2,
    column3,
    (SELECT column2 FROM your_table t2 WHERE t2.column1 = t1.column3) AS column4
FROM 
    your_table t1;

逻辑说明:

  • 外层查询遍历每一行数据,内层子查询针对当前行的column3值,去表中查找column1匹配的行,返回对应的column2
  • 如果找不到匹配值,子查询返回NULL,和需求一致

输入表格(示例数据)

column1column2column3
2two3
5five8
3three10
8eight11
12one15

输出结果(两种方案都能得到如下结果)

column1column2column3column4
2two3three
5five8eight
3three10
8eight11
12one15

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 13:28:10