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

Pernyataan BERGABUNG Bersyarat SQL Server

Saya pikir apa yang Anda minta akan berhasil dengan bergabung dengan Awal tabel ke keduanya Option_A dan Option_B menggunakan LEFT JOIN , yang akan menghasilkan sesuatu seperti ini:

Initial LEFT JOIN Option_A LEFT JOIN NULL
OR
Initial LEFT JOIN NULL LEFT JOIN Option_B

Contoh kode:

SELECT i.*, COALESCE(a.id, b.id) as Option_Id, COALESCE(a.name, b.name) as Option_Name
FROM Initial_Table i
LEFT JOIN Option_A_Table a ON a.initial_id = i.id AND i.special_value = 1234
LEFT JOIN Option_B_Table b ON b.initial_id = i.id AND i.special_value <> 1234

Setelah Anda melakukan ini, Anda 'mengabaikan' kumpulan NULLS. Trik tambahan di sini adalah di baris SELECT, di mana Anda perlu memutuskan apa yang harus dilakukan dengan bidang NULL. Jika tabel Option_A dan Option_B serupa, maka Anda dapat menggunakan COALESCE fungsi untuk mengembalikan nilai NON NULL pertama (sesuai contoh).

Opsi lainnya adalah Anda hanya perlu membuat daftar bidang Option_A dan bidang Option_B, dan biarkan apa pun yang menggunakan ResultSet untuk menangani penentuan bidang mana yang akan digunakan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Contoh SQL Server UNTUK JSON PATH (T-SQL)

  2. Ganti nama Batasan CHECK di SQL Server menggunakan T-SQL

  3. Impor Beberapa File CSV ke SQL Server dari Folder

  4. Apa keuntungan dari VistaDB

  5. Cara Menonaktifkan Batasan Kunci Asing di SQL Server (Contoh T-SQL)