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

关联两表列拼接需求:非零列优先,双零返回空值

需求与实现方案

关联表数据

表1(以column1为关联ID)

column1column2
Mike345
Steve987
Andy0
Lucas0

表2(以column3为关联ID,与表1的column1对应)

column3column4
Mike543
Lucas0
Andy678
Steve0

计算列拼接规则

  • 优先判断表1的column2是否不为0:若满足,拼接名称 + 空格 + column2
  • 若表1column2为0,再判断表2的column4是否不为0:若满足,拼接名称 + 空格 + column4
  • 若两者均为0,则计算列留空

预期结果

column3column4Concat column
Mike543Mike 345
Lucas0
Andy678Andy 678
Steve0Steve 987

实现代码

1. SQL 实现

假设表1名为table1,表2名为table2,通过column1 = column3关联,使用CASE语句实现逻辑:

SELECT
    t2.column3,
    t2.column4,
    CASE
        WHEN t1.column2 != 0 THEN CONCAT(t1.column1, ' ', t1.column2)
        WHEN t2.column4 != 0 THEN CONCAT(t2.column3, ' ', t2.column4)
        ELSE ''
    END AS `Concat column`
FROM table2 t2
LEFT JOIN table1 t1 ON t1.column1 = t2.column3;

2. Power BI DAX 计算列

在表2中新建计算列,公式如下:

Concat column = 
VAR _table1_value = RELATED('table1'[column2])
RETURN
IF(
    _table1_value <> 0,
    CONCATENATE('table2'[column3], " ", _table1_value),
    IF(
        'table2'[column4] <> 0,
        CONCATENATE('table2'[column3], " ", 'table2'[column4]),
        BLANK()
    )
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 23:55:26