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

複数の ID の更新ステートメント

    これは、 column3 を設定しようとしているためです SQL は、それが 1 つの値のみ (スカラー) であることを想定しています。複数の戻り値を渡すと、SQL エンジンは混乱します (どれを使用する必要がありますか?...結果を反復処理することを想定していません)。したがって、結果セット全体を更新する場合は、クエリからサブテーブルを作成して結合する必要があります。クエリは次のようになります

    UPDATE Table3
    SET Column3 = subtable.value
    FROM Table3 
        JOIN (
            select t2.column3+t1.column3 as value, t1.id
            from table2 t2 with (nolock) join table1 t1
            on table2.id=t1.id
            where table2.id IN (100,101)
        ) AS subtable
        ON subtable.id = Table3.id
    WHERE table3.id IN (100, 101)
      

    table3.id が他の ID と一致するというこの仮定の下では、内部の where table2.id IN ... も実際には必要ありません。



    1. SQL Server ServerManagementStudioを使用したデータベースのインポート/エクスポート

    2. PostgreSQLで月をローマ数字でフォーマットする

    3. SQLiteの既存のテーブルに列を追加する

    4. Arval SQLException:致命的:申し訳ありませんが、すでにpostgresにあるクライアントが多すぎます