Ola amigos, conforme prometido segue uma dica de sql. Pra quem utiliza Transact-Sql eh bem util.

Normalmente os programadores utilizam recursos dinamicos para simplificar e ficar um programa mais generico. Hoje iremos ver um Select Dinamico.

Cenario:
Temos um select que na clausa where utilizamos variaveis.
Mas queremos utilizar as condicoes somente se as variaveis possuirem valor.

Codigo:

create table usuario
(
id        integer
,nome    varchar(60)
,dtnasc    smalldatetime
,email    varchar(60)
)

declare  @id        integer
,@nome        varchar(60)
,@dtnasct    smalldatetime
,@email        varchar(60)

……
……
……

SELECT     id
,nome
,dtnasc
,email
FROM     usuario
WHERE     (@id IS NULL OR id = @id)
AND         (@dtnasc IS NULL OR dtnasc = @dtnasc)

 Somente se as variaveis possuirem valor o select ira utilizar as condicoes where.

Qualquer duvida eh soh falar.

abs