PDA

Ver la Versión Completa : Case Anidados ¿Se puede?


jam888
27-01-2006, 16:21:36
Que tal foro mi pregunta es la siguiente puedo insertar un case dentro de otro case, no coloco mi problema por que es muy complejo, pero si podrian colocar un ejemplo sencillo y cortito me seria de mucha ayuda, desde ya gracias y un abrazo.

Neftali [Germán.Estévez]
27-01-2006, 16:31:23
Creo que no lo permite la sintaxis.
¿No hay manera de "desanidarlos" y crear un sólo nivel?

delphi.com.ar
27-01-2006, 16:48:07
Ahora si:

SELECT CASE WHEN 1=1 THEN CASE WHEN 2=2 THEN 1 ELSE 2 END ELSE 3 END
UNION ALL
SELECT CASE WHEN 1=2 THEN CASE WHEN 2=2 THEN 1 ELSE 2 END ELSE 3 END
UNION ALL
SELECT CASE WHEN 1=1 THEN CASE WHEN 2=3 THEN 1 ELSE 2 END ELSE 3 END

Es un ejemplo muy básico, pero espero que te sea útil.

Saludos!

jam888
30-01-2006, 16:38:43
Gracias lo he probado y marcha bien , Un Abrazo.

Xianto
31-01-2006, 01:49:06
Tambien puedes hacer algo como:


select
case when a=1 then 5
case when a=2 then 6
case when a=3 then 7
case when a=4 then 8
case when a=5 then 9
end


Saludos !

delphi.com.ar
31-01-2006, 14:39:38
Tambien puedes hacer algo como:

select
case when a=1 then 5
case when a=2 then 6
case when a=3 then 7
case when a=4 then 8
case when a=5 then 9
end


Particularmente en ese caso yo haría algo como:

select
case a
when 1 then 5
when 2 then 6
when 3 then 7
when 4 then 8
when 5 then 9
end


Saludos!