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

Bagaimana cara membuat prosedur tersimpan yang secara opsional akan mencari kolom?

Sedangkan COALESCE triknya rapi, metode pilihan saya adalah:

CREATE PROCEDURE ps_Customers_SELECT_NameCityCountry
    @Cus_Name varchar(30) = NULL
    ,@Cus_City varchar(30) = NULL
    ,@Cus_Country varchar(30) = NULL
    ,@Dept_ID int = NULL
    ,@Dept_ID_partial varchar(10) = NULL
AS
SELECT Cus_Name
       ,Cus_City
       ,Cus_Country
       ,Dept_ID
FROM Customers
WHERE (@Cus_Name IS NULL OR Cus_Name LIKE '%' + @Cus_Name + '%')
      AND (@Cus_City IS NULL OR Cus_City LIKE '%' + @Cus_City + '%')
      AND (@Cus_Country IS NULL OR Cus_Country LIKE '%' + @Cus_Country + '%')
      AND (@Dept_ID IS NULL OR Dept_ID = @DeptID)
      AND (@Dept_ID_partial IS NULL OR CONVERT(varchar, Dept_ID) LIKE '%' + @Dept_ID_partial + '%')

SP semacam ini dapat dengan mudah dibuat kode (dan dibuat ulang untuk perubahan tabel).

Anda memiliki beberapa opsi untuk menangani angka - tergantung apakah Anda menginginkan semantik yang tepat atau mencari semantik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbandingan String Sensitif Huruf SQL

  2. BUAT TABEL JIKA TIDAK ADA yang setara di SQL Server

  3. Kunci Asing ke kunci non-primer

  4. SQL Server 2008 tidak dapat masuk dengan pengguna yang baru dibuat

  5. Cara Menggunakan FILEPROPERTY() di SQL Server