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

Preguntas similare

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




Respuesta Responder a este mensaje
#2 Norberto Kelijman
16/08/2007 - 03:38 | Informe spam
Gracias, Alejandro.
Norberto

"Alejandro Mesa" wrote in message
news:
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




Respuesta Responder a este mensaje
#3 Norberto Kelijman
16/08/2007 - 17:41 | Informe spam
Gracias, cali.
Es una SP bastante complejo, lo hice como me aconsejó Alejandro Mesa y
funciona. Ya está en producción y todo, no tocarum largo vivirum.
Norberto
"cali" escribió en el mensaje
news:
A VER ESTA

where
(
(@caso=2 and idFactura = @idFactura) or (@caso = 3 and idFactura <>
@idFactura )
)


"Norberto Kelijman" wrote in message
news:
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
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida