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

Budowanie dynamicznej klauzuli WHERE w procedurze składowanej

Spróbuj zamiast tego:

WHERE 1 = 1
AND (@what     IS NULL OR [companies_SimpleList].[Description] Like @What )
AND (@keywords IS NULL OR companies_SimpleList.Keywords        Like @Keywords)
AND (@where    IS NULL OR companies_SimpleList.FullAdress      Like @Where)
...

Jeśli którykolwiek z parametrów @what , @where jest wysyłany do procedury składowanej z NULL wartość wtedy warunek zostanie zignorowany. Możesz użyć 0 zamiast null jako wartości testowej, wtedy będzie to coś w stylu @what = 0 OR ...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Usuń cudzysłowy we wszystkich wierszach w kolumnie

  2. Filtrowanie duplikatów w tabeli bez klucza podstawowego

  3. Oblicz godziny pracy między dwiema datami

  4. T-SQL używający SUM do sumy bieżącej

  5. SQL Server:maksymalna liczba wierszy w tabeli