Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak utworzyć procedurę składowaną, która opcjonalnie będzie przeszukiwać kolumny?

Podczas gdy COALESCE sztuczka jest fajna, moja preferowana metoda to:

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

Tego rodzaju SP można łatwo wygenerować w kodzie (i ponownie wygenerować w celu zmiany tabeli).

Masz kilka opcji obsługi liczb - w zależności od tego, czy chcesz uzyskać dokładną semantykę, czy semantykę wyszukiwania.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak naprawić komunikat o błędzie 7325 w programie SQL Server:„Obiekty eksponujące kolumny z typami CLR nie są dozwolone w kwerendach rozproszonych”

  2. Jak działa funkcja TRANSLATE() w programie SQL Server (T-SQL)

  3. Liczenie wierszy dla wszystkich tabel jednocześnie

  4. Statystyki użycia procesora w bazach danych SQL Server

  5. Jak naprawić „Wyrażenie ALTER TABLE SWITCH nie powiodło się”