Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki
Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - Equivalente de DECODE de Oracle para MySQL
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information Equivalente de DECODE de Oracle para MySQL

Publicar nuevo tema Responder al tema
Foros de discusión » MySQL Server, MySQL Client, motor de bd gratuito   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: Equivalente de DECODE de Oracle para MySQL Responder citando

¿Hay alguna función equivalente a DECODE de Oracle en MySQL?

He visto las características de la función Decode para Oracle en:

http://www.ajpdsoft.com/modules.php?name=Encyclopedia&op=content&tid=682

Y quisiera saber si existe una función similar en MySQL.
MensajePublicado:
Mie Ago 26, 2009 6:34 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Equivalente de DECODE de Oracle para MySQL Responder citando



Anuncios



varios escribió:
¿Hay alguna función equivalente a DECODE de Oracle en MySQL?

He visto las características de la función Decode para Oracle en:

http://www.ajpdsoft.com/modules.php?name=Encyclopedia&op=content&tid=682

Y quisiera saber si existe una función similar en MySQL.


En MySQL existen varias posibilidades para simular la función DECODE de Oracle, una de ellas es utilizar CASE ... WHEN ... THEN, sería algo así:

Código:

SELECT
  CASE campo_tabla
    WHEN 1 THEN 'Uno'
    WHEN 2 THEN 'Dos'
    WHEN 3 THEN 'Tres'
    WHEN 4 THEN 'Cuatro'
    ELSE 'Otro número'
  END
from nombre_tabla


En el caso anterior, el CASE comparará el valor de "campo_tabla" con los que tiene en los WHEN, si coincide con alguno devolverá lo que haya después del THEN. Si no coincide con ninguno, devolverá lo que haya en el ELSE.

En realidad, el CASE de MySQL es como el "Case" de cualquier lenguaje de programación (como Delphi).

Otra forma de utilizar el CASE:

Código:

SELECT
  CASE nombre_Campo
    WHEN IS NULL THEN 0
    ELSE nombre_Campo
  END
from nombre_tabla;


En este caso se le indica una condición después del WHEN, si la cumple, devolverá lo que haya después del THEN. En el ejemplo devolverá "0" si el valor de "nombre_Campo" es null, sino devolverá el valor de "nombre_Campo".
MensajePublicado:
Mie Ago 26, 2009 6:57 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Equivalente de DECODE de Oracle para MySQL Responder citando



Anuncios



Otra equivalencia en MySQL para Decode de Oracle podría ser "IF", sería algo así:

IF (condición, valor_si_true, valor_si_false)

Un ejemplo:

Código:

SELECT
  IF(reaperturas is null, 0, reaperturas)
from incidencia;


En este ejemplo, si el valor del campo "reaperturas" de la tabla "incidencias" es "null" (nulo) devolverá "0", en otro caso devolverá el valor de "reaperturas".
MensajePublicado:
Mie Ago 26, 2009 7:07 am
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » MySQL Server, MySQL Client, motor de bd gratuito  

Cambiar a:  
Key
  Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A