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

Melewati pernyataan WHERE jika variabel untuk pernyataan tersebut adalah null

Untuk kasus sederhana ini dalam pertanyaan Anda, gunakan saja

IF ( @place IS NULL )
  SELECT *
  FROM   table1
ELSE
  SELECT *
  FROM   table1
  WHERE  country = @place  

Jika situasi Anda yang sebenarnya lebih kompleks, Anda dapat menggunakan

select * 
from Table1 
where @place is null or [email protected] 
option (recompile)

Alasan perlunya recompile Petunjuknya adalah untuk menghindari memiliki satu paket yang melayani kedua kasus dan melakukan pemindaian yang tidak perlu jika Anda memberikan nilai eksplisit.

Ini, dan alternatif lain seperti membuat kueri secara dinamis, dibahas secara rinci dalam artikel Penelusuran Dinamis Kondisi dalam T-SQL



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Memperbaiki "Skema partisi '...' tidak memiliki filegroup yang digunakan berikutnya" di SQL Server

  2. SQL Server 2008 - Bagaimana cara mengembalikan Jenis Tabel Buatan Pengguna dari Fungsi Bernilai Tabel?

  3. SqlCommand.ExecuteScalar Cancel

  4. Bagaimana cara menghapus data tabel yang besar dalam SQL tanpa log?

  5. Hapus Baris Duplikat di SQL Server