通过向主列添加1来更新列,而主键不是最小值

时间:2012-11-14 14:59:11

标签: sql-server sql-update

我基本上只是尝试在表的每一行中向列添加1,而主键不是最小值。我把代码放在下面。有人能用逻辑来帮助我吗?

    UPDATE MyTable
SET LineNumber = (case when TableID != min(TableID) then LineNumber + 1)
FROM MyTable

4 个答案:

答案 0 :(得分:1)

你正在寻找这样的东西吗?

  update MyTable
    set LineNumber = LineNumber + 1
  where
    TableID > (SELECT MIN(TableID ) FROM MyTable)

答案 1 :(得分:1)

UPDATE  mt
SET     LineNumber = LineNumber + 1
FROM    MyTable mt
WHERE   TableID <> 
        (
        select  min(TableID) 
        from    MyTable
        )

答案 2 :(得分:0)

怎么样?
UPDATE MyTable SET LineNumber = LineNumber +1 WHERE TableID != MIN(TableID) FROM MyTable

答案 3 :(得分:0)

您应该在Andomar's回答的位置执行此操作,但如果您确实想使用案例陈述,则可以执行此操作

UPDATE
  MyTable
SET LineNumber = 

  CASE WHEN TableID = (SELECT MIN(TableID) MinID FROM MyTable) 
       THEN LineNumber
       ELSE LineNumber+ 1
  END
FROM
  MyTable;

DEMO