Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Изграждане на динамична клауза WHERE в съхранена процедура

Опитайте това вместо това:

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)
...

Ако някой от параметрите @what , @where се изпраща към запомнената процедура с NULL стойност, тогава условието ще бъде игнорирано. Можете да използвате 0 вместо null като тестова стойност, тогава ще бъде нещо като @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. Как да улавяте и анализирате събития на SQL Server

  2. Получаване на динамично генерирана обобщена таблица във времева таблица

  3. не може да се отвори, защото е версия 706. Този сървър поддържа версия 662 и по-стари. Пътят на понижаване не се поддържа

  4. SQL заявка, която прави разлика между ß и ss

  5. SQL замества всички NULL