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

如何在SQL当前行中获取上列值并更新immediateparent字段

问题描述

现有数据表:

OrgIDTreelevelLEVEL1LEVEL2LEVEL3immediateparent
001030080090010NULL
0012200110012

期望输出:

OrgIDTreelevelLEVEL1LEVEL2LEVEL3immediateparent
001030080090010009
00122001100120011

需求:根据Treelevel字段值,获取当前行OrgID对应的上一级层级值,更新到immediateparent字段。

解决方案

可以用SQL的CASE WHEN语句实现条件赋值,根据Treelevel的取值对应提取上一级LEVEL字段的值:

UPDATE your_table_name
SET immediateparent = CASE
    WHEN Treelevel = 3 THEN LEVEL2
    WHEN Treelevel = 2 THEN LEVEL1
    -- 若存在更多层级,继续补充对应条件即可
    ELSE immediateparent  -- 无匹配规则时保留原有值,避免被清空
END;

如果需要先验证结果,可使用查询语句:

SELECT 
    OrgID,
    Treelevel,
    LEVEL1,
    LEVEL2,
    LEVEL3,
    CASE
        WHEN Treelevel = 3 THEN LEVEL2
        WHEN Treelevel = 2 THEN LEVEL1
        ELSE immediateparent
    END AS immediateparent
FROM your_table_name;

说明

  • 当Treelevel为3时,取LEVEL2的值作为父级;
  • 当Treelevel为2时,取LEVEL1的值作为父级;
  • 后续若新增层级(比如Treelevel=4对应LEVEL3),只需在CASE语句中添加对应分支即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 11:01:05