SQL – CASE no WHERE

Me deparei com um “problema”: Como fazer um CASE (comando SQL) na clausula WHERE.

Resolvi o problema e decidi post aqui na sintaxe do SQL Server 2000 ou 2005

Sendo WHERE MUN_EST_CODIGO = o campo da tabela a ser comparado.

Quaquer dúvida é só comentar.
Abraço a todos.

4 thoughts on “SQL – CASE no WHERE

  1. Bom dia Adão, muito útil seu post.
    Será que você poderia me ajudar na seguinte estrutura sql?


    DECLARE @flag TINYINT
    SET @flag = 2
    select * from Clientes
    where
    case @flag
    when 1 then (Status = 0)
    when 2 then (Status = 1)
    end

    Eu sei que o código abaixo funciona, mas eu queria usar mesmo o case pois o select que na realidade preciso fazer é relativamente grande.


    DECLARE @flag TINYINT
    SET @flag = 2
    if @flag = 1
    select * from Clientes where status = 0
    else
    select * from Clientes where status = 1

    Desde já agradeço.

  2. post antigo mas ajudou muito, deu certo no sql 2014 vlw
    .
    select * from CALL
    where 109253 = case when TechnicalService=1 then CALL.TechnicalId else CALL.UserId end

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *