sql >> Databáze >  >> RDS >> Sqlserver

Jak vytvořím uloženou proceduru, která bude volitelně prohledávat sloupce?

Zatímco COALESCE trik je skvělý, moje preferovaná metoda je:

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 + '%')

Tyto druhy SP lze snadno generovat kódem (a znovu generovat pro změny v tabulce).

Máte několik možností pro práci s čísly – podle toho, zda chcete přesnou sémantiku nebo sémantiku vyhledávání.



  1. Nejlepší přístupy pro seskupený medián

  2. Jak změnit řazení databáze, tabulky, sloupce?

  3. Porovnání časů převzetí služeb při selhání pro Amazon Aurora, Amazon RDS a ClusterControl

  4. EEE MMM dd HH:mm:ss ZZZ yyyy formát data na java.sql.Date