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

CASE语句多国家奖牌统计报错:无效关系运算符修复咨询

解决方案:修正后的SQL及错误排查

修正后的SQL语句

SELECT
    CASE NOC
        WHEN 'CAN' THEN '加拿大'
        WHEN 'USA' THEN '美国'
        WHEN 'MEX' THEN '墨西哥'
    END AS 国家全称,
    Medal,
    COUNT(*) AS 数量
FROM
    olympic_medals -- 替换为你的实际表名
WHERE
    Year = 2000
    AND NOC IN ('CAN', 'USA', 'MEX')
    AND Medal IS NOT NULL
GROUP BY
    CASE NOC
        WHEN 'CAN' THEN '加拿大'
        WHEN 'USA' THEN '美国'
        WHEN 'MEX' THEN '墨西哥'
    END,
    Medal
ORDER BY
    Medal;

常见错误点排查(触发“无效关系运算符”的原因)

  • CASE语句语法错误:如果原SQL写了WHEN NOC = 'CAN', 'USA'这类格式,属于非法写法——关系运算符=只能对应单个值,多值匹配要拆分多个WHEN子句,或者在WHERE里用IN先过滤。
  • WHERE子句逻辑错误:比如错误写成NOC = 'CAN' OR 'USA',会被解析成(NOC = 'CAN') OR 'USA',字符串'USA'不能作为布尔条件,直接触发关系运算符错误。正确写法是NOC IN ('CAN', 'USA', 'MEX')或多个独立OR条件。
  • GROUP BY遗漏字段:标准SQL要求SELECT中的非聚合字段必须出现在GROUP BY中,如果原SQL只GROUP BY了Medal,没包含CASE生成的国家全称,会触发语法或逻辑错误(部分数据库报错会关联到关系运算符问题)。
  • 非法运算符使用:比如把SQL的等于运算符=写成了==(多数数据库不支持该写法),也会报无效关系运算符。

结果说明

执行后会输出三列:国家全称(对应CAN/USA/MEX的中文名称)、Medal(奖牌类型,如Gold/Silver/Bronze)、数量(对应国家该类型奖牌的总数),并按Medal字段排序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 16:52:12