获取MY SQL语法错误也不确定我的方法是否正确。
一个表中的matchScore应该基于以下条件更新为另一表:


100-> 0
97-99-> .1
95-96-> .2


    create table A(id int, matchScore int, PRIMARY KEY(id))
    create table b(id, int, matchScore double, PRIMARY KEY(id))
    UPDATE
      b
    SET
      [b.matchScore] = (CASE WHEN A.matchScore = 100 THEN 0 END)
    FROM
      b,
      A
    where
      A.id = b.id


A中的100应为b中的0
97-99如果A中的值是97、98,99,则b中的值应为.1
95-96如果值是95,则A中的值为96,那么b中的值应为.2

最佳答案

您可以在下面尝试更新查询-

UPDATE b
INNER JOIN a ON b.id = a.id
SET b.matchScore = CASE WHEN a.matchScore = 100 THEN 0
                        WHEN a.matchScore between 97 and 99 then .1
                        WHEN a.matchScore between 95 and 96 then .2 END;


Here是小提琴。

10-08 07:21