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

SQL更新语句需求:各筹码颜色值限current_turn后求和更新points

改写后的SQL语句

直接上满足需求的UPDATE语句:

UPDATE score
SET points = 
  LEAST(red_chips, current_turn) +
  LEAST(blue_chips, current_turn) +
  LEAST(green_chips, current_turn) +
  LEAST(yellow_chips, current_turn) +
  LEAST(white_chips, current_turn);

实现思路说明

核心是用LEAST()函数搞定每个筹码字段的上限控制:

  • LEAST(字段名, current_turn)会自动返回两个值中较小的那个,刚好匹配你的要求:如果字段值大于current_turn,就取current_turn;否则直接用字段本身的值。
  • 把五个颜色字段经过LEAST()处理后的值相加,就是最终要赋值给points的求和结果。

兼容备选方案(针对不支持LEAST()的数据库)

如果你的数据库(比如旧版SQL Server)不支持LEAST()函数,可以用CASE语句替代逻辑,举个完整的例子:

UPDATE score
SET points = 
  CASE WHEN red_chips > current_turn THEN current_turn ELSE red_chips END +
  CASE WHEN blue_chips > current_turn THEN current_turn ELSE blue_chips END +
  CASE WHEN green_chips > current_turn THEN current_turn ELSE green_chips END +
  CASE WHEN yellow_chips > current_turn THEN current_turn ELSE yellow_chips END +
  CASE WHEN white_chips > current_turn THEN current_turn ELSE white_chips END;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:06:24