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

如何修改含STUFF函数的SQL查询以实现指定displayname列效果

SQL查询修改:调整displayname列的聚合格式

我编写的SQL查询语句如下:

SELECT 
    [tbl_flw].[question_id], [tbl_flw].[project_id], 
    [tbl_flw].[follow_up_ans], [tbl_flw].[follow_up_ques], 
    [t1].[question] AS current_ques, 
    [t2].[question] AS followUp_ques, 
    displayname = STUFF((SELECT ', ' + [tbl_ques].[question] 
                         FROM [tbl_flw] 
                         LEFT JOIN [tbl_ques] ON [tbl_ques].[question_id] = [tbl_flw].[follow_up_ques] 
                         WHERE [tbl_flw].[follow_up_ques] = [tbl_ques].[question_id] 
                         FOR XML PATH('')), 1, 2, '')
FROM 
    [tbl_flw] 
INNER JOIN 
    [tbl_ques] t1 ON t1.question_id = [tbl_flw].[question_id] 
INNER JOIN 
    [tbl_ques] t2 ON t2.question_id = [tbl_flw].[follow_up_ques] 
WHERE  
    [project_id] = 162

当前查询的displayname列未按预期聚合,期望该列能按question_id分组,将同一组下所有follow_up_ques对应的question内容合并显示。

修改后的SQL语句

SELECT 
    [tbl_flw].[question_id], [tbl_flw].[project_id], 
    [tbl_flw].[follow_up_ans], [tbl_flw].[follow_up_ques], 
    [t1].[question] AS current_ques, 
    [t2].[question] AS followUp_ques, 
    displayname = STUFF((SELECT ', ' + sub_ques.[question] 
                         FROM [tbl_flw] sub_flw
                         INNER JOIN [tbl_ques] sub_ques ON sub_ques.question_id = sub_flw.follow_up_ques
                         WHERE sub_flw.question_id = [tbl_flw].[question_id] -- 关联外层主表的question_id,限定聚合范围
                         FOR XML PATH('')), 1, 2, '')
FROM 
    [tbl_flw] 
INNER JOIN 
    [tbl_ques] t1 ON t1.question_id = [tbl_flw].[question_id] 
INNER JOIN 
    [tbl_ques] t2 ON t2.question_id = [tbl_flw].[follow_up_ques] 
WHERE  
    [project_id] = 162

修改说明

原查询的子查询未与外层主表tbl_flw建立关联,导致每次都会返回所有符合follow_up_ques = question_id的记录,而非当前行对应分组的数据。通过添加sub_flw.question_id = [tbl_flw].[question_id]关联条件,子查询会仅聚合当前question_id下所有follow_up_ques对应的问题内容,从而得到预期的合并格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:45:49