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

如何替换Student表Marks列指定值?当前SQL代码未实现需求

正确修改Student表Marks列指定数值的SQL方法

原代码的问题很明确:你把CASE语句的逻辑用在了Roll_num列上,完全没对Marks列做处理,自然达不到修改Marks的效果。根据需求分两种场景给出解决方案:

场景1:仅查询时临时替换(不修改原表数据)

如果只是想在查询结果里替换Marks的指定数值,不改动数据库原始数据,把CASE语句作用在Marks列上即可:

SELECT Name,
       -- 对Marks列应用替换逻辑
       CASE
           WHEN Marks = '65' THEN '你要替换的目标值1' -- 替换成实际需要的数值
           WHEN Marks = '68' THEN '你要替换的目标值2'
           WHEN Marks = '71' THEN '你要替换的目标值3'
           ELSE Marks -- 其他数值保持不变
       END AS Marks,
       Roll_num
FROM student;

场景2:永久修改表中的Marks数据

如果需要直接修改数据库表内的Marks值,使用UPDATE语句:

UPDATE student
SET Marks = CASE
               WHEN Marks = '65' THEN '你要替换的目标值1'
               WHEN Marks = '68' THEN '你要替换的目标值2'
               WHEN Marks = '71' THEN '你要替换的目标值3'
               ELSE Marks
           END
-- 加上WHERE条件只更新需要修改的行,避免不必要的全表操作
WHERE Marks IN ('65', '68', '71');

注意:如果Marks是数值类型(而非字符串),去掉数值两侧的单引号,比如写WHEN Marks = 65而非'65'。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 21:32:40