使用 between 更新列

Updating a column using between

问题是更新 Class 列。下面的 table 是该结构的一小段。 Class 列当前为空,需要根据成员资格列中的值进行更新。例如,12 人的成员资格将是 class 3。

Membership    Class
  0 to 4        1
  5 to 9        2
 10 to 19       3

下面的代码是否足够:

Update dbo.tablename 
set class = 1 
where 'membership' between 0 and 4

您需要在列名周围去掉引号:

Update dbo.tablename set class=1 where membership between 0 and 4

然后运行不同的成员范围相同。

如果您使用的是 SQL 服务器(或其他几个数据库之一),则不必为 class 列操心。相反,使用计算列:

alter dbo.tablename add class as
    (case when membership between 0 and 4 then 1
          when membership between 5 and 9 then 2
          when membership between 10 and 19 then 3
     end);

该值是在您引用该列时计算的,因此它始终是最新的。