sql >> Base de Datos >  >> RDS >> Sqlserver

Construyendo una cláusula WHERE dinámica en un procedimiento almacenado

Prueba esto en su lugar:

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

Si alguno de los parámetros @what , @where se envía al procedimiento almacenado con NULL entonces la condición será ignorada. Puede usar 0 en lugar de nulo como valor de prueba, entonces será algo como @what = 0 OR ...