Операторы Case / функция декодирования в Informatica
может ли кто-нибудь помочь мне с написанием заявлений по делу в Informatica PowerCenter Designer? Я довольно новичок в Informatica, и, основываясь на моем ограниченном опыте, я чувствую, что заявления о случаях не поддерживаются. Существует функция декодирования с аналогичной функциональностью, но я не могу найти хороших примеров синтаксиса.
Я был бы очень признателен, если бы кто-нибудь мог дать мне некоторые конкретные примеры использования операторов case/функции декодирования в Informatica.
спасибо много для вашей помощи!
2 ответов
вы правы - нет CASE
утверждение, но вы можете использовать DECODE
для имитации:
DECODE( TRUE
, DECIMAL_PORT > 0, 'positive value'
, DECIMAL_PORT < 0, 'negative value'
, 'zero' )
это эквивалент следующего Transact-SQL CASE
о себе:
CASE
WHEN DECIMAL_PORT > 0 THEN 'positive value'
WHEN DECIMAL_PORT < 0 THEN 'negative value'
ELSE 'zero'
END
вот как это работает:
- 1-й параметр-это жестко
TRUE
значение - даже параметры (2-й, 4-й и так далее) являются условия,
- нечетные параметры (3rd, 5th и так далее) являются вернуться значения,
- последний параметр-это возвращаемое значение по умолчанию,
- первое условие, которое вычисляет значение 1-го параметра (т. е. Первое условие, которое является истинным), определяет возвращаемое значение,
- если ни одно из условий не выполняется, возвращается последний параметр.
Посмотрите также на функцию IIF (), которая часто используется для реализации условной логики:
IIF(DECIMAL_PORT > 0, 'positive value', IIF(DECIMAL_PORT < 0 ,'negative value', 'zero'))