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

Vytváření dynamické klauzule WHERE v uložené proceduře

Zkuste místo toho toto:

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

Pokud některý z parametrů @what , @where je odeslána do uložené procedury s NULL hodnotu, pak bude podmínka ignorována. Jako testovací hodnotu můžete použít 0 místo null, pak to bude něco jako @what = 0 OR ...



  1. INSERT a SELECT v jediném dotazu MySQL

  2. SQL NOT operátor

  3. Vrátí datové řádky z bloku pl/sql

  4. Přidávání, mazání a úprava uživatelů adminem v php