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

SQL Server CASE WHEN语句问题:生成max_mark列代码失效求助

解决CASE WHEN生成max_mark列的SQL语法问题

你的代码无法运行的核心原因是缺少FROM子句,没有指定要查询的Students表。修正后的完整SQL代码如下:

SELECT
    Name,
    CASE 
        WHEN marks < 10 THEN 9
        WHEN marks < 20 THEN 19
        WHEN marks < 30 THEN 29
        WHEN marks < 40 THEN 39
        WHEN marks < 50 THEN 49
        WHEN marks < 60 THEN 59
        WHEN marks < 70 THEN 69
        WHEN marks < 80 THEN 79
        WHEN marks < 90 THEN 89
        ELSE 99 
    END AS max_mark
FROM Students;

另外可以用数学计算简化逻辑,替代重复的CASE WHEN判断,效果和原逻辑完全一致:

SELECT
    Name,
    FLOOR(marks / 10) * 10 + 9 AS max_mark
FROM Students;

逻辑说明

通过FLOOR(marks / 10)提取分数的十位整数部分,乘以10后加9,直接得到对应分数区间的最大值,比如分数为17时,FLOOR(17/10)=1,计算后得到1*10+9=19,和原CASE逻辑结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 10:27:46