Olá,
O erro ocorre quando o banco vai avaliar a instrução CASE dentro da sua clausula Where. Você está tentando direcionar o critério de seleção através do CASE e isso não funciona.
Faça o seguinte: Cria uma variável @Sql do tipo nvarchar(MAX) e coloque dentro dela toda a sua instrução SQL, depois use clausulas IF para avaliar o @Param e concatenar os critérios apropriados. Veja, seria algo mais ou menos assim:
DECLARE @Sql nvarchar(MAX);
@Sql =
Olá,
O erro ocorre quando o banco vai avaliar a instrução CASE dentro da sua clausula Where. Você está tentando direcionar o critério de seleção através do CASE e isso não funciona.
Faça o seguinte: Cria uma variável @Sql do tipo nvarchar(MAX) e coloque dentro dela toda a sua instrução SQL, depois use clausulas IF para avaliar o @Param e concatenar os critérios apropriados. Veja, seria algo mais ou menos assim:
DECLARE @Sql nvarchar(MAX);
@Sql = "Select......... AND Campanhas.InCampanhaPorLote ';
If @Param = '0'
@Sql = @Sql + '<>1'
Else
@Sql = @Sql + '=1';
Isto é chamado de Query dinâmica.