8

¿Alguien podría ayudarme con la redacción de sentencias de caso en Informatica PowerCenter Designer? Soy bastante nuevo en Informatica y, según mi experiencia limitada, creo que las declaraciones de casos no son compatibles. Hay una función de decodificación con una funcionalidad similar, pero no puedo encontrar ningún buen ejemplo sobre la sintaxis.Sentencias de caso/función de decodificación en Informatica

Realmente agradecería que alguien pudiera darme algunos ejemplos específicos sobre cómo usar declaraciones de casos/función de decodificación en Informatica.

¡Muchas gracias por su ayuda!

Respuesta

15

Tienes razón - no hay CASE declaración, pero se puede utilizar para simular que DECODE:

DECODE(TRUE 
     , DECIMAL_PORT > 0, 'positive value' 
     , DECIMAL_PORT < 0, 'negative value' 
         , 'zero') 

Es un equivalente de la siguiente CASE instrucción Transact-SQL:

CASE 
    WHEN DECIMAL_PORT > 0 THEN 'positive value' 
    WHEN DECIMAL_PORT < 0 THEN 'negative value' 
    ELSE 'zero' 
END 

Así es como funciona:

  • el primer parámetro es un código d TRUE valor,
  • incluso parámetros (2º, 4º, etc.) son los condiciones,
  • parámetros impares (3, 5, etc.) son los valores de la devolución ,
  • el último parámetro es el valor de retorno predeterminado,
  • la primera condición que evalúa el valor del primer parámetro (es decir, la primera condición que es verdadera) determina el valor que se devuelve,
  • si no se cumple ninguna de las condiciones se devuelve el último parámetro.
3

mirar también a la función IIF() que a menudo se utiliza para implementar la lógica condicional:

IIF(DECIMAL_PORT > 0, 'positive value', IIF(DECIMAL_PORT < 0 ,'negative value', 'zero')) 
+2

Esto funcionará pero también causar problemas más rápidamente el número de condiciones crece. 'DECODE' permite escribir expresiones más legibles. –