2014-09-16 3 views
1

Если мой Informatica код выглядит следующим образом:Informatica- Каков результат, если условие IIF равно нулю?

IIF(foo,1,0) 

и foo = NULL, что будет на выходе?

Извините, если ответ на этот вопрос очевиден или находится где-то в справочной системе, но я не смог найти ничего полезного с помощью поиска или поиска SO.

ответ

2

foo является выражением, которое должно вычисляться либо TRUE или FALSE, так вот, как Integration Service интерпретирует различные целые значения, когда они представляют собой полное условие:

IIF( -7, 1, 0) -> 1 
IIF( 0, 1, 0) -> 0 
IIF(NULL, 1, 0) -> 0 
IIF( 7, 1, 0) -> 1 

Все отрицательные или положительные целые числа уступать TRUE.
Значения 0 или NULL дают FALSE.

0

Если бы я был вами, я бы попытался переписать этот конкретный фрагмент. Хотя это не неверно, лучше не писать такой код. оберните «foo» вокруг isnull(), если вы подозреваете, что это так. Кроме того, используйте эквивалент nvl и проверьте эти значения. Условные проверки, касающиеся NULL, всегда дороги.

Смежные вопросы