La función DECODE de Oracle

La función DECODE es una función al estilo IF/ELSE. Comprara una misma expresión con otra/s.

Sintaxis

La función tiene tres parámetros obligatorios. Los dos primeros se comparan y, si son iguales, se devuelve ‘resultado_si_igualB’; si no son iguales, se devuelve NULL.


DECODE(expresión, expresiónB, resultado_si_igualB);

Esta función puede crecer tanto como se necesite. Por ejemplo, si queremos que, en caso de que no sean iguales, devuelva un valor en concreto, usamos:


DECODE(expresión, expresiónB, resultado_si_igualB, resultado_si_no_igualB);

De igual manera se puede continuar comparando «expresión» con otros resultados en caso de no encontrar igualdades. Dividimos en varias lineas para hacer más legible la sintaxis.


DECODE(expresión,
expresiónB, resultado_si_igualB,
expresiónC, resultado_si_igualC,
expresiónD, resultado_si_igualD,
resultado_si_ninguno_igual);

Una posible lectura, dependiendo los valores de «expresiónX», podría ser: compara «expresión» con «expresiónB», si no es igual, compara «expresión» con «expresiónC», si no es igual, compara «expresión» con «expresiónD», si es igual, devuelve «resultado_si_igualD».

Ejemplos


SELECT DECODE(343,344,'Igual') from dual;

Esta consulta devuelve NULL.


SELECT DECODE(343,344,'Igual','No_Igual') from dual;

Esta devuelve: No_Igual.


SELECT DECODE('ORIGINAL','COPIA','No_es_copia','TRANSCRITO','No_es_transcrito','ORIGINAL','Es_original','No_es_conocido') from dual;

Esta consulta devuelve: Es_original.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *