Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Erstellen einer dynamischen WHERE-Klausel in einer gespeicherten Prozedur

Versuchen Sie stattdessen Folgendes:

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

Wenn einer der Parameter @what , @where wird mit NULL an die gespeicherte Prozedur gesendet Wert, dann wird die Bedingung ignoriert. Sie können 0 anstelle von null als Testwert verwenden, dann wird es so etwas wie @what = 0 OR ... sein