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

Andomarの回答のようにwhereでこれを行う必要がありますが、本当に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 に答える
0

どうですか

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