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

如何在Snowflake的SQL中拼接不同行的两个字符串实现全名合并

Snowflake 行列转换拼接姓名方案

可以实现,你可以通过条件聚合搭配字符串拼接功能直接得到目标输出,也可以先行转列再做拼接,两种常用实现方式如下:

方案1:条件聚合直接拼接

不需要额外做行转列,分组后用条件判断取出对应姓、名的数值直接拼接即可,Snowflake中可以用||运算符或者CONCAT()函数实现拼接效果,和CONCATENATE功能一致:

SELECT 
    ID,
    -- 写法1:用||运算符拼接
    TRIM(MAX(CASE WHEN Question = 'First name?' THEN Answer END) || ' ' || MAX(CASE WHEN Question = 'Last name?' THEN Answer END)) AS Full_Name
    -- 写法2:用CONCAT函数拼接,效果和上面完全一致
    -- TRIM(CONCAT(MAX(CASE WHEN Question = 'First name?' THEN Answer END), ' ', MAX(CASE WHEN Question = 'Last name?' THEN Answer END))) AS Full_Name
FROM 替换为你的表名
GROUP BY ID
ORDER BY ID;

加TRIM()是为了避免出现某一项为空时生成多余的前后空格。

方案2:先PIVOT行转列再拼接

如果后续还要用到姓名拆分的字段,可以先行转列再做拼接,逻辑更直观:

WITH pivot_result AS (
    SELECT * 
    FROM 替换为你的表名
    PIVOT (
        MAX(Answer) 
        FOR Question IN ('First name?' AS first_name, 'Last name?' AS last_name)
    )
)
SELECT 
    ID,
    TRIM(CONCAT(first_name, ' ', last_name)) AS Full_Name
FROM pivot_result
ORDER BY ID;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 22:27:03