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

如何编写SQL的CASE语句判断指定条目对应列存在多个不同值?

实现方法

可以通过分组聚合结合CASE语句来实现需求,核心逻辑是先统计每个水果对应的不同颜色数量,再根据数量判断返回值:

基础分组实现(适合只需要水果和结果颜色的场景)

SELECT 
    fruit,
    CASE 
        WHEN COUNT(DISTINCT color) > 1 THEN 'Multiple'
        ELSE MAX(color)
    END AS color
FROM your_table
GROUP BY fruit;

窗口函数实现(适合需要保留原表其他字段的场景)

如果原表还有其他需要保留的字段,可以用窗口函数避免丢失数据:

SELECT 
    DISTINCT fruit,
    -- 可添加原表其他需要保留的字段
    CASE 
        WHEN COUNT(DISTINCT color) OVER (PARTITION BY fruit) > 1 THEN 'Multiple'
        ELSE MAX(color) OVER (PARTITION BY fruit)
    END AS color
FROM your_table;

逻辑说明

  • COUNT(DISTINCT color):统计每个水果对应的不同颜色的数量,避免重复颜色干扰计数
  • 当数量大于1时,说明该水果对应多种颜色,返回'Multiple'
  • 当数量等于1时,用MAX(color)(或MIN(color))取出唯一的颜色值,此时聚合函数不会改变结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 04:57:33