Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 通过向主键不是最小值的列添加1来更新列_Sql Server_Sql Update - Fatal编程技术网

Sql server 通过向主键不是最小值的列添加1来更新列

Sql server 通过向主键不是最小值的列添加1来更新列,sql-server,sql-update,Sql Server,Sql Update,我基本上只是尝试在表的每一行中的一列中添加1,该列的主键不是最小值。我把代码放在下面。有人能帮我解释一下逻辑吗 UPDATE MyTable SET LineNumber = (case when TableID != min(TableID) then LineNumber + 1) FROM MyTable 那怎么办 UPDATE MyTable SET LineNumber = LineNumber +1 WHERE TableID != MIN(TableID) FROM My

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

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

UPDATE MyTable SET LineNumber = LineNumber +1 WHERE TableID != MIN(TableID) FROM MyTable

你在找这样的东西吗

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

你应该用where作为答案,但如果你真的想用case语句,你可以这样做

UPDATE
  MyTable
SET LineNumber = 

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

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