Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tuf®

CASE dentro do WHERE

Recommended Posts

Queria saber se é possível fazer um case dentro do where para pegar um filtro diferente.

Seria assim:

 

declare @teste tinyint
select @teste = 1
select *
from TabelaQualquer
where
  coluna1 = 'a'
  and (
        case @teste
          when 1 then coluna2 = 'b'
          when 2 then coluna3 = 'c'
        end
      )

Algo parecido com isso, mas quando eu tento executar esse código, aparece a mensagem de erro:

Incorrect syntax near '='.

Compartilhar este post


Link para o post
Compartilhar em outros sites

com case creio que não vai dar pra fazer o que tu ta querendo... o case tem outro comportamento: http://msdn.microsoft.com/en-us/library/ms181765.aspx

mas com esse esquema aqui resolve: http://forum.imasters.com.br/index.php?/topic/220823-exemplo-de-where-dinamico/page__hl__dba__fromsearch__1, basta passar NULL quando não quiser usar um determinado parâmetro

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.