Descripción: Es una forma abreviada de escribir el “CASE simple” en el cual una expresión es comparada con varias otras expresiones hasta que una coincidencia es encontrada. El resultado es determinado por el valor que se encuentra después de la expresión coincidente. Si no se encuentra una coincidencia el valor por defecto es devuelto. Y si no hay valor por defecto, NULL es devuelto.

Tipo de resultado: Varía

Sintaxis:

DECODE(<expresión_a_examinar>,

<expresión>, resultado

[, <expresión>, resultado …]

[, <resultado_por_defecto>])

El CASE simple equivalente sería:

CASE <expresión_a_examinar>

WHEN <expresión> THEN resultado

[WHEN <expresión> THEN resultado …]

[ELSE resultado_por_defecto]

END

Aviso: Las coincidencias son hechas con el operador “=”, así que si la expresión_a_examinar es NULL, no habrá coincidencia con ninguna <expresión>, ni siquiera con aquellas que sean NULL

Ejemplo:

SELECT
   MVC_FECHAX,
   DECODE(MVC_TIPMOV,
      'ECM', 'Compra',
      'SVT', 'Venta',
      'COB', 'Cobranza',
      'PAG', 'Pago',
      'Desconocido'),
   DECODE(MVC_TIPDOC,
      'FCO', 'Factura contado',
      'FCR', 'Factura crédito',
      'Desconocido'),
   MVC_NRODOC,
   DECODE(MVC_MONEDA,
      0, 'Moneda local',
      1, 'Dólares',
      2, 'Euros',
      3, 'Libras esterlinas',
      4, 'Yenes')
FROM
   MOVIMCAB