Filtrar un SELECT de un stored procedure es muy sencillo pero antes vamos a ponernos en el lugar del escenario.
Supongamos que tenemos una grilla y se muestran todo los empleados que son como 40 mil.
Ahora el usuario dice, ya esta bien todo pero quiero filtrar aquellos usuarios que actualmente trabajan con nosotros, entonces (ESTADO = 'ACTIVO') y nuestro where debe ajustarse para incluir o excluir dicha condición.
La manera práctica usando un stored procedure sin crear un query dinámico es pasar los parametros dandoles un valor por defecto, en este caso NULL y en nuestro WHERE simplemente preguntamos si @parametro = null OR @parametro = al campo que queremos comparar.
CREATE PROCEDURE USP_LISTAR_EMPLEADOS
@ESTADO VARCHAR(20) = NULL
AS
BEGIN
SELECT * FROM empleados WHERE @ESTADO = NULL OR @ESTADO = Estado
END