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

Tambahkan klausa WHERE ke SQL secara dinamis / terprogram

Anda dapat melakukan ini di sql saja, seperti ini:

SELECT * 
FROM tUsers 
WHERE 1 = 1
  AND (@userID IS NULL OR RTRIM(Name) = @userID )
  AND (@password IS NULL OR RTRIM(Password) = @password)
  AND (@field2 IS NULL OR Field2 = @field2)
....

Jika ada parameter yang diteruskan ke prosedur tersimpan dengan NULL nilai maka seluruh kondisi akan diabaikan.

Perhatikan bahwa :Saya menambahkan WHERE 1 = 1 untuk membuat kueri berfungsi jika tidak ada parameter yang diteruskan ke kueri dan dalam hal ini semua rangkaian hasil akan dikembalikan, karena 1 = 1 selalu benar.



  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 @@MAX_CONNECTIONS Bekerja di SQL Server

  2. Cara Mengubah Kolom dari Null menjadi Tidak Null di SQL Server

  3. PHP, ORM, MSSQL dan Unicode, apakah mungkin untuk membuat ini bekerja bersama?

  4. Bagaimana NULLIF() Bekerja di SQL Server

  5. Cari Tahu apakah Tabel Dipartisi di SQL Server (T-SQL)