Documentos de Académico
Documentos de Profesional
Documentos de Cultura
'-,--expresión-else-'
El esquema es SYSIBM.
La función DECODE es similar a la expresión CASE excepto en el manejo de los valores nulos:
Un valor nulo de expresión1 coincidirá con un valor nulo correspondiente
de expresión2.
Si se utiliza la palabra clave NULL como argumento de la función DECODE, se deberá
convertir en un tipo de datos apropiado.
Las normas para determinar el tipo de resultado de una expresión DECODE se basan en la
expresión CASE correspondiente.
Ejemplos:
La expresión DECODE:
DECODE (c1, 7, 'a', 6, 'b', 'c')
obtiene el mismo resultado que la expresión CASE siguiente:
CASE c1
WHEN 7 THEN 'a'
WHEN 6 THEN 'b'
ELSE 'c'
END
De forma similar, la expresión DECODE:
DECODE (c1, var1, 'a', var2, 'b')
donde los valores de c1, var1 y var2 pueden ser valores nulos, obtiene el mismo resultado que la
expresión CASE siguiente:
CASE
WHEN c1 = var1 OR (c1 IS NULL AND var1 IS NULL) THEN 'a'
WHEN c1 = var2 OR (c1 IS NULL AND var2 IS NULL) THEN 'b'
ELSE NULL
END
Examine también la consulta siguiente:
SELECT ID, DECODE(STATUS, 'A', 'Accepted',
'D', 'Denied',
CAST(NULL AS VARCHAR(1)), 'Unknown',
'Other')
FROM CONTRACTS
A continuación se muestra la misma sentencia utilizando una expresión CASE:
SELECT ID,
CASE
WHEN STATUS = 'A' THEN 'Accepted'
WHEN STATUS = 'D' THEN 'Denied'
WHEN STATUS IS NULL THEN 'Unknown'
ELSE 'Other'
END
FROM CONTRACTS