Início > SQL Server > SQL – IF no WHERE

SQL – IF no WHERE

Agora a pouco tive um ítem para resolver no momento da programação de uma procedure SQL e acho interessante compartilhar a solução com todos.

Eu recebo um parâmetro “bit” e se ele for igual a 1, tenho que criar outro where testando outra coluna da tabela.
Uma das soluções seria fazer um IF na proc e montar dois selects apenas com o WHERE diferente. Com certeza é uma solução ruim, ainda mais quando a lógica do select é complexa.

A opção que segui é bem simples e segue logo abaixo.

—————–
Select nome, título, descrição, preco
From Produto
Where título like ‘%geladeira%’
and id = case when @id > 0 then @id else id end
and id2 = case when @id2 > 0 then @id2 else id2 end
—————–

Link relacionado: http://social.msdn.microsoft.com/Forums/pt/transactsqlpt/thread/f53bf504-4753-408c-bd4a-b8e90f57c369

 

Anúncios
Categorias:SQL Server
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: