Agradecimento
Primeiramente, gostaria de deixar meu agradecimento ao Gray, que publicou um post em http://barnsite.spaces.live.com/blog/cns!8C400BF8F7A6CD0C!1150.entry.
Objetivos
Aqui, nosso objetivo é simples. Provavelmente você já precisou apresentar um GridView associado a um conjunto de filtros, todos opcionais. Nesse caso, você tem dois caminhos a seguir:
- Contruir uma clausula WHERE via código e executá-la usando o exec(@select);
- Usar nossa sugestão! : )
Filtrando de forma simples
Ok, vamos direto ao ponto! Para fazermos essa busca, basta usarmos a seguinte sintaxe:
SELECT *
FROM cadastro
WHERE (Estado = ISNULL(@Estado, Estado)) AND (Cidade = ISNULL(@Cidade, Cidade))
FROM cadastro
WHERE (Estado = ISNULL(@Estado, Estado)) AND (Cidade = ISNULL(@Cidade, Cidade))
Fácil, rápido e descomplicado! A Função ISNULL(testar, substituir) verifica se o valor de testar é nulo. Se não for, ele retorna o seu valor. Se for nulo, então ela retorna o valor de substituir.
Assim, conseguimos um código limpo, simples e mais seguro de ser usado!
Mais sugestãoes como essa, entre em contato!