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

SQL实现分组列多值合并为单一值并按规则筛选数据的方法

问题解答

你写的SET y.name = 'Students'写法不可行,CASE是值表达式,仅用于返回计算结果,不支持修改原字段值的SET操作。

实现方案

直接在匹配到Candidates的分支返回固定字符串'Students'即可。另外如果要过滤掉不符合要求的其他类型(比如Preschool、Home School这类不需要返回的),建议在WHERE子句中补充过滤条件,避免CASE返回NULL值,同时提高SQL执行效率。

修正后的代码示例如下:

SELECT 
   MAX(CASE
       WHEN x.type = 'education' THEN
         CASE
           WHEN y.name LIKE '%Elementry%' THEN y.name
           WHEN y.name LIKE '%Collage%' THEN y.name
           WHEN y.name LIKE '%University%' THEN y.name
           WHEN y.name LIKE '%Students%' THEN y.name
           WHEN y.name LIKE '%Candidates%' THEN 'Students'
         END
     END) AS education_type
FROM 你的x表名 x
JOIN 关联的y表名 ON 你的表关联条件
WHERE x.type = 'education'
-- 过滤不需要返回的其他类型数据
AND (
    y.name LIKE '%Elementry%'
    OR y.name LIKE '%Collage%'
    OR y.name LIKE '%University%'
    OR y.name LIKE '%Students%'
    OR y.name LIKE '%Candidates%'
)
-- 如有分组需求可在此处补充GROUP BY 你的分组字段

修改后所有匹配到Candidates的行都会被统一标记为Students,和原有的Students类数据会被归为同一类参与后续统计。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:45:03