Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Perbarui pernyataan untuk beberapa id

Ini karena Anda mencoba mengatur column3 ke hasil yang dikembalikan, dan SQL mengharapkan itu menjadi satu nilai saja (skalar). Mesin SQL menjadi bingung ketika Anda memberikannya lebih dari satu nilai pengembalian (yang mana yang harus digunakan?... itu tidak mengasumsikan untuk beralih melalui hasil). Jadi, jika Anda ingin memperbarui seluruh rangkaian hasil, maka Anda perlu membuat subtabel dari kueri Anda dan bergabung dengan itu. Kueri Anda akan terlihat lebih seperti ini

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)

Dengan asumsi bahwa table3.id cocok dengan id lain, Anda juga benar-benar tidak memerlukan where table2.id IN ...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Indeks teks lengkap SQL Server benar-benar mengindeks kata-kata dalam katalog?

  2. Apa itu Skema di SQL Server dan Cara Membuat/Menjatuhkan Skema di Database SQL Server - Tutorial SQL Server / TSQL Part 27

  3. Ekstrak URL dari situs web?

  4. Hasilkan semua kombinasi dalam SQL

  5. Bagaimana APPROX_COUNT_DISTINCT() Bekerja di SQL Server