sql >> データベース >  >> RDS >> Sqlserver

1つのUPDATESQLステートメントで複数の更新を実行することは可能ですか?

    1つのステートメントと複数のcaseステートメントを使用できます

    update tbl
      set title = 
        case
          when title in ('a-1', 'a.1') then 'a1'
          when title in ('b-1', 'b.1') then 'b1'
          else title
        end
    

    もちろん、これによりすべてのレコードに書き込みが発生します。インデックスを使用すると問題になる可能性があるため、変更する行のみを除外できます。

    update tbl
      set title = 
        case
          when title in ('a-1', 'a.1') then 'a1'
          when title in ('b-1', 'b.1') then 'b1'
          else title
        end
    where
      title in ('a.1', 'b.1', 'a-1', 'b-1')
    

    これにより、テーブルへの書き込み回数が削減されます。



    1. データが存在しない場合でも月ごとのレコードを選択するMysql

    2. OracleAceの変更

    3. PostgreSQLデータベース内のすべてのトリガーを一覧表示する2つの方法

    4. Enterprise Manager AppforGrafanaを使用してOEMをGrafanaに接続します