使用介于两者之间更新列

时间:2017-09-08 22:41:18

标签: sql-server ssms between

问题是更新Class列。下表是该结构的简短片段。 Class列当前为空,需要根据成员资格列中的值进行更新。例如,12的成员资格将是第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

2 个答案:

答案 0 :(得分:2)

您需要在列名称周围取出引号:

--no-treekill

然后针对不同的会员范围运行相同的内容。

答案 1 :(得分:1)

如果您使用的是SQL Server(或其他几个数据库之一),则不应该使用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); 列。而是使用计算列:

{{1}}

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