0

我基本上只是想在主键不是最小值的表的每一行中添加 1。我把代码放在下面。有人可以帮我解释一下逻辑吗?

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

4 回答 4

1

你在找这样的东西吗?

  update MyTable
    set LineNumber = LineNumber + 1
  where
    TableID > (SELECT MIN(TableID ) FROM MyTable)
于 2012-11-14T15:03:15.000 回答
1
UPDATE  mt
SET     LineNumber = LineNumber + 1
FROM    MyTable mt
WHERE   TableID <> 
        (
        select  min(TableID) 
        from    MyTable
        )
于 2012-11-14T15:03:30.403 回答
0

关于什么

UPDATE MyTable SET LineNumber = LineNumber +1 WHERE TableID != MIN(TableID) FROM MyTable
于 2012-11-14T15:02:50.773 回答
0

您应该在Andomar 的答案中执行此操作,但如果您真的想使用 case 语句,您可以执行此操作

UPDATE
  MyTable
SET LineNumber = 

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

演示

于 2012-11-14T15:11:38.840 回答