Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

case when de MSSql en Oracle

Estas en el tema de case when de MSSql en Oracle en el foro de Oracle en Foros del Web. Estimados foreros, Alguien sabe si existe un equivalente en Oracle a la instrucción Case del MSSQL: Es decir que pueda ralizar algo como esto en ...
  #1 (permalink)  
Antiguo 05/02/2007, 09:57
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 6 meses
Puntos: 3
case when de MSSql en Oracle

Estimados foreros,

Alguien sabe si existe un equivalente en Oracle a la instrucción Case del MSSQL:

Es decir que pueda ralizar algo como esto en Oracle (8.1)

select case when campo =1 then "es uno" else "no es uno" end
from tabla


saludos
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #2 (permalink)  
Antiguo 05/02/2007, 11:26
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
Re: case when de MSSql en Oracle

leete la sintaxis de DECODE que es la que resolvera tu problema


Código:
 SELECT supplier_name,  decode(supplier_id, 10000, 'IBM',  
10001, 'Microsoft',  
10002, 'Hewlett Packard',  

'Gateway') result  FROM suppliers;
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #3 (permalink)  
Antiguo 05/02/2007, 12:21
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 6 meses
Puntos: 3
Re: case when de MSSql en Oracle

Muy bueno, y me ha servido bastante, aunque en MSSql se pueden colocar condiciones de este tipo:

select
case when campo > 1 then "es mayor que uno" else "no es mayor que uno" end,
case when campo between 1 and 2 then "1y2" else "mas que 2" end
from tabla

Sabes(n) si puede hacerse algo como esto?

Saludoss
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #4 (permalink)  
Antiguo 05/02/2007, 15:14
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
Re: case when de MSSql en Oracle

Tienes que introducir un decode dentro de otro decode
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #5 (permalink)  
Antiguo 06/02/2007, 05:19
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 6 meses
Puntos: 3
Re: case when de MSSql en Oracle

mmm.. he tratado pero no se me ocurre como podrían hacerse condiciones de "mayor que" o "menor que" u otra comparación que no sea igualdad...

saludos
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #6 (permalink)  
Antiguo 06/02/2007, 08:46
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
Re: case when de MSSql en Oracle

las versiones de Oracle tambien traen el case when


Cita:
Select campo1,
case
when campo2 = '*' then 'Multiplica'
when campo2 = '+' then 'Suma'
when campo2 = '-' then 'resta'
else 'Otro simbolo'
end
from mytabla;
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #7 (permalink)  
Antiguo 06/02/2007, 13:34
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 6 meses
Puntos: 3
Re: case when de MSSql en Oracle

que bien.,.. es igualito.. soy felizz:)
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #8 (permalink)  
Antiguo 08/02/2007, 09:47
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
Re: case when de MSSql en Oracle

solo aclarar que el "case" solo esta disponible a partir de la version 9i si tienen una version menor tendran que usar decode
__________________
Blogzote.com :-) Mi blog
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:08.