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

如何在Azure Data Factory中合并3列并将Null值替换为空白

合并三列为Fullname并处理Null值的解决方案

核心思路

直接用CONCAT会因为Null值导致拼接结果异常(部分数据库中只要有一个Null,整个拼接结果就会变成Null),所以需要先把每个列的Null值替换为空字符串,再进行拼接,最后处理多余的空格。

示例数据

First NameMiddle NameLastname
PriyaNULLRaju
RameshshaktiPrabha

不同数据库的实现代码

MySQL/MariaDB

使用IFNULL函数替换Null为空串,再用TRIM去除首尾多余空格:

SELECT 
  `First Name`,
  `Middle Name`,
  Lastname,
  TRIM(CONCAT(
    IFNULL(`First Name`, ''), ' ',
    IFNULL(`Middle Name`, ''), ' ',
    IFNULL(Lastname, '')
  )) AS Fullname
FROM your_table;

PostgreSQL/SQL Server

使用更通用的COALESCE函数替换Null,逻辑和上面一致:

SELECT 
  "First Name",
  "Middle Name",
  Lastname,
  TRIM(CONCAT(
    COALESCE("First Name", ''), ' ',
    COALESCE("Middle Name", ''), ' ',
    COALESCE(Lastname, '')
  )) AS Fullname
FROM your_table;

处理中间多余空格(可选)

如果担心中间出现多个连续空格(比如某两列同时为空的情况),可以用正则替换把多个空格合并为单个:

  • MySQL:
REGEXP_REPLACE(
  CONCAT(
    IFNULL(`First Name`, ''), ' ',
    IFNULL(`Middle Name`, ''), ' ',
    IFNULL(Lastname, '')
  ), ' +', ' '
) AS Fullname
  • PostgreSQL:
REGEXP_REPLACE(
  CONCAT(
    COALESCE("First Name", ''), ' ',
    COALESCE("Middle Name", ''), ' ',
    COALESCE(Lastname, '')
  ), '\s+', ' ', 'g'
) AS Fullname

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 13:03:19