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

SQL中基于MP值自定义命名及MHT条件计算的CASE语句实现问询

修正后的SQL查询方案

原代码的问题点

  • 不符合NULL要求:MP小于0.6时返回0,但需求明确要返回NULL
  • 同层别名引用错误:SELECT语句里不能直接用刚定义的HT别名做后续判断
  • 字符串格式不匹配:返回的命名带多余空格,且大小写和需求的beveledring、Ring不一致
  • MHT处理逻辑错误:不符合条件时返回0,但需求是保留MHT原值

正确实现代码

SELECT 
    *,
    CASE
        WHEN MP BETWEEN 0.6 AND 0.79 THEN 'beveledring'
        WHEN MP BETWEEN 0.8 AND 0.99 THEN 'Ring'
        WHEN MP < 0.6 THEN NULL
        ELSE NULL  -- 处理MP≥1或为NULL的场景
    END AS HT,
    CASE
        WHEN MP BETWEEN 0.6 AND 0.79 THEN MHT / 2
        ELSE MHT  -- 其他情况保持MHT原有值
    END AS adjusted_MHT
FROM your_table_name;  -- 替换成你的实际表名

关键说明

  • MP的判断完全贴合需求:覆盖了0.6-0.79、0.8-0.99、小于0.6的场景,同时处理了MP≥1或为NULL的情况,统一返回NULL
  • 处理MHT时直接复用MP的判断条件,避开了同层别名无法引用的问题
  • 统一命名格式,去掉多余空格,严格匹配需求里的命名规范
  • 把处理后的MHT命名为adjusted_MHT,避免和原字段冲突;如果需要直接替换原MHT字段,可将别名改为MHT

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 11:10:34