8

Czy ktoś mógłby mi pomóc w pisaniu opisów spraw w Informatica PowerCenter Designer? Jestem dość nowy w firmie Informatica, a na podstawie mojego ograniczonego doświadczenia nie uważam, że instrukcje dotyczące spraw nie są obsługiwane. Istnieje funkcja dekodowania o podobnej funkcjonalności, ale nie mogę znaleźć żadnych dobrych przykładów na temat składni.Case Statement/Decode Function w Informatica

Byłbym bardzo wdzięczny, gdyby ktoś mógł podać mi kilka konkretnych przykładów użycia instrukcji case/funkcji dekodowania w Informatica.

Wielkie dzięki za pomoc!

Odpowiedz

15

Masz rację - nie ma CASE oświadczenie, ale można użyć DECODE to zasymulować:

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

Jest to równoważne z następujących Transact-SQL CASE stwierdzeniem:

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

Oto jak to działa:

  • Pierwszy parametr jest sztywnym kodem d TRUE wartość,
  • nawet parametry (2, 4 i tak dalej) są warunki,
  • parametry nieparzyste (3, 5 i tak dalej) są wartościami powrót ,
  • ostatni parametr jest domyślna wartość zwracana ,
  • pierwszy warunek, który ocenia wartość pierwszego parametru (tj. pierwszy warunek, który jest prawdziwy) określa zwracaną wartość, jeśli żaden z warunków nie jest spełniony, zwracany jest ostatni parametr.
3

również spojrzeć funkcji IIF(), który jest często stosowany do realizacji logiki warunkowej:

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

to będzie działać, ale będzie to także bałagan szybko jak liczba warunkach rośnie. "DECODE" pozwala pisać bardziej czytelne wyrażenia. –