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

如何使用SQL堆叠两列并标记数据来源列?

实现两列堆叠并标记原始来源列

你可以通过UNION ALL结合字符串拼接来实现需求,核心思路是分别处理每一列,将原始列名与A列值拼接后作为新的A列,再合并结果集。

通用SQL示例(适配多数数据库)

SELECT CONCAT(A, '_B') AS A, B AS new
FROM 你的表名
UNION ALL
SELECT CONCAT(A, '_C') AS A, C AS new
FROM 你的表名

不同数据库的细节调整

  • MySQL/MariaDB:直接使用上述CONCAT函数即可
  • SQL Server:除了CONCAT,也可以用+拼接字符串:
    SELECT A + '_B' AS A, B AS new
    FROM 你的表名
    UNION ALL
    SELECT A + '_C' AS A, C AS new
    FROM 你的表名
    
  • PostgreSQL:支持||拼接符或CONCAT函数:
    SELECT A || '_B' AS A, B AS new
    FROM 你的表名
    UNION ALL
    SELECT A || '_C' AS A, C AS new
    FROM 你的表名
    

说明

  • 使用UNION ALL而非UNION,避免系统自动去重导致数据丢失(如果你的数据有重复且需要去重,可替换为UNION)
  • 如果需要堆叠更多列,只需继续添加对应SELECT语句并用UNION ALL连接即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 16:17:11