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

SQL求助:如何将两列非空租户姓名合并为单列?

问题描述

现有两个存储租户信息的表:r.renter(租户姓名存于own1字段)、t.renter(租户姓名存于name字段);同时存在一张账户关联表,结构及数据如下:

Acct  Owner1   Owner2
256   ABC      NULL
478   NULL     FGH

需要将该账户关联表转换为以下格式:

Acct  Owner
256   ABC
478   FGH 
实现方案

针对账户关联表的转换需求,有两种常用的SQL实现方式:

方法1:使用COALESCE函数

COALESCE函数会返回参数列表中第一个非NULL的值,刚好匹配当前场景(每条数据中Owner1和Owner2仅有一个非空):

SELECT 
    Acct,
    COALESCE(Owner1, Owner2) AS Owner
FROM 账户关联表名;

方法2:使用CASE WHEN条件判断

如果需要更直观的逻辑控制,可以用CASE WHEN实现:

SELECT 
    Acct,
    CASE 
        WHEN Owner1 IS NOT NULL THEN Owner1
        ELSE Owner2
    END AS Owner
FROM 账户关联表名;

如果Owner1和Owner2的值需要分别从r.renter.own1和t.renter.name关联获取,可以扩展为关联查询:

SELECT 
    a.Acct,
    COALESCE(r.own1, t.name) AS Owner
FROM 账户关联表名 a
LEFT JOIN r.renter r ON a.Owner1 = r.own1
LEFT JOIN t.renter t ON a.Owner2 = t.name;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 02:01:57