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

SQL查询如何将同组多行面试官姓名合并为逗号分隔单列

SQL修改实现多值字段逗号拼接的方案

你需要通过「分组+字符串聚合」的逻辑修改查询,核心是把同一条招聘申请下的多个面试官姓名合并为单个逗号分隔的字符串,同时按其余固定字段分组保证仅返回单条记录。
注意不同数据库的字符串聚合函数语法有差异,对应写法如下:

MySQL 5.7/8.0 版本

直接使用GROUP_CONCAT函数实现拼接,修改后的SQL如下:

select 
    irc.requistion_number,
    irc.CANDIDATE_FNAME,
    irc.CANDIDATE_LNAME,
    email.title,
    email.EMAIL_ADDRESS,
    GROUP_CONCAT(email.Interviewer SEPARATOR ' , ') AS `Interviewer Name`
from 
    irc_requistion irc
inner join email_address email
    on irc.email_id = email.email_id 
    and irc.requistion_number = email.requistion_number
group by
    irc.requistion_number,
    irc.CANDIDATE_FNAME,
    irc.CANDIDATE_LNAME,
    email.title,
    email.EMAIL_ADDRESS;

这里把原来的隐式逗号连接改成了显式INNER JOIN写法,逻辑和原语句完全一致,可读性更高。

其他常用数据库对应写法

  • PostgreSQL、SQL Server 2017及以上版本:使用STRING_AGG函数,把上述SQL中聚合面试官的行替换为STRING_AGG(email.Interviewer, ' , ') AS "Interviewer Name"即可,其余分组、连接逻辑保持不变。
  • Oracle 11g及以上版本:使用LISTAGG函数,聚合行替换为LISTAGG(email.Interviewer, ' , ') WITHIN GROUP (ORDER BY email.Interviewer) AS "Interviewer Name"。

补充说明

  • 如果需要去掉重复的面试官姓名,可以在聚合函数内加DISTINCT关键字,比如MySQL中写为GROUP_CONCAT(DISTINCT email.Interviewer SEPARATOR ' , ')
  • 如果面试官姓名字段本身包含逗号,建议把分隔符换成分号等特殊字符,避免后续数据解析出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 05:18:25