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".
Publicado:
Mie Ago 26, 2009 6:57 am
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Equivalente de DECODE de Oracle para MySQL
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".
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