3 opciones en el WHERE

16/08/2007 - 02:16 por Norberto Kelijman | Informe spam
Estimados:

Quiero hacer una cláusula WHERE que me contemple estas 3 posibilidades:
Si @caso = 1, no hay condición.
Si @caso = 2, idFactura = @idFactura
Si @caso = 3, idFactura <> @idFactura

Para los casos 1 y 2 me las he arrglado siempre con el CASE, poniendo en el
primer caso idFactura = idFactura.

Pero no le encuentro la vuelta (salvo SQL dinámico) a hacer un solo SELECT
con las 3 posibilidades.

¿Alguien sabe cómo hacerlo?
Gracias.
Norberto
 

Leer las respuestas

#1 Alejandro Mesa
16/08/2007 - 03:10 | Informe spam
Hola Norberto,

Vas ha obtener mejor rendimineto si usas:

if @caso = 1
select ...
else
if @caso = 2
select ...
else
select ...


Dynamic Search Conditions in T-SQL
http://www.sommarskog.se/dyn-search.html


AMB

"Norberto Kelijman" wrote:

Estimados:

Quiero hacer una cláusula WHERE que me contemple estas 3 posibilidades:
Si @caso = 1, no hay condición.
Si @caso = 2, idFactura = @idFactura
Si @caso = 3, idFactura <> @idFactura

Para los casos 1 y 2 me las he arrglado siempre con el CASE, poniendo en el
primer caso idFactura = idFactura.

Pero no le encuentro la vuelta (salvo SQL dinámico) a hacer un solo SELECT
con las 3 posibilidades.

¿Alguien sabe cómo hacerlo?
Gracias.
Norberto




Preguntas similares