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

SQL Server JOIN tidak memiliki nilai NULL

Anda dapat secara eksplisit tentang bergabung:

SELECT Table1.Col1, Table1.Col2, Table1.Col3, Table2.Col4
FROM Table1 INNER JOIN
     Table2
      ON (Table1.Col1 = Table2.Col1 or Table1.Col1 is NULL and Table2.Col1 is NULL) AND
         (Table1.Col2 = Table2.Col2 or Table1.Col2 is NULL and Table2.Col2 is NULL)

Dalam praktiknya, saya akan lebih cenderung menggunakan coalesce() dalam kondisi bergabung:

SELECT Table1.Col1, Table1.Col2, Table1.Col3, Table2.Col4
FROM Table1 INNER JOIN
     Table2
     ON (coalesce(Table1.Col1, '') = coalesce(Table2.Col1, '')) AND
        (coalesce(Table1.Col2, '') = coalesce(Table2.Col2, ''))

Dimana '' akan menjadi nilai yang tidak ada di salah satu tabel.

Hanya kata-kata peringatan. Di sebagian besar database, menggunakan salah satu konstruksi ini mencegah penggunaan indeks.



  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 cara menyimpan direktori / hierarki / struktur pohon dalam database?

  2. grup sql hanya dengan baris yang berurutan

  3. Proses Lengkap untuk Menyalin Tabel dari Satu Database ke Database Lainnya (Ekspor-Impor) di SQL Server

  4. Impor / Ekspor database dengan SQL Server Server Management Studio

  5. Perbedaan dua tanggal waktu di sql server