在SQL Server中为整列插入值

时间:2019-02-22 09:15:23

标签: sql sql-server

是否可以为特定列而不是SQL Server中的整个行插入不同值。 传统的UPDATE SET会将所有值都设置为相同的值。

enter image description here

例如,我想为3行中的每行设置一些int值到Rank列中,而不要删除它们并进行完整的新插入。

3 个答案:

答案 0 :(得分:0)

使用row_number()

  update a set ranking =rn from tablename a join 
    (select id,name, row_number() over(order by id) as rn
        from tablename) b on a.id=b.id

答案 1 :(得分:0)

进行更新

update tabale 
  set ranking= your_va

   with cte as
   (
    select * ,row_number() over(order by id) rn
   ) update cte set ranking=rn where id<=3

答案 2 :(得分:0)

您要将ranking设置为什么值?

任意值:

update mytable set ranking = id;

某些值:

update mytable set ranking =
  case name 
    when 'Positive' then 1
    when 'Neutral'  then 2
    when 'Negative' then 3
                    else 4
  end;