2016-01-29 40 views
0

嗨,大家好我的代碼看起來像處理在Informatica的平面文件空值

iif(not isnull(ltrim(rtrim(a))) or not is_spaces(ltrim(rtrim(a))) or ltrim(rtrim(a))!='' or length(ltrim(rtrim(a)))!=0 or ltrim(rtrim(a))!=null or ltrim(rtrim(a))!='NULL'and not isnull(ltrim(rtrim(b))) or not is_spaces(ltrim(rtrim(b))) or ltrim(rtrim(b))!='' or length(ltrim(rtrim(b)))!=0 or ltrim(rtrim(b))!=null or ltrim(rtrim(b))!='NULL',null,ltrim(rtrim(a))). 

如果A和B是not null然後我不得不做出的null別人傳遞的,因爲它是值。但我的邏輯工作不正常,我通過給表達式轉換提供詳細數據來檢查會話日誌,但我的值爲b,即[NULL]來自會話日誌,已被視爲not null。你能幫助我們給出準確的語句來正確識別空值。 我試過用is_spaces,空的strings.length!=0選項。但仍爲空的值被認爲是錯誤的實際值。

+0

它是一個固定寬度的文件嗎? – Ruchi

回答

1

我認爲你需要組ab條件如下圖所示

IIF 
(
    (
     NOT ISNULL(LTRIM(RTRIM(a))) 
    OR NOT IS_SPACES(LTRIM(RTRIM(a))) 
    OR LTRIM(RTRIM(a)) != '' 
    OR LENGTH(LTRIM(RTRIM(a))) != 0 
    OR LTRIM(RTRIM(a)) != NULL 
    OR LTRIM(RTRIM(a)) != 'NULL' 
    ) 
    AND 
    (
     NOT ISNULL(LTRIM(RTRIM(b))) 
    OR NOT IS_SPACES(LTRIM(RTRIM(b))) 
    OR LTRIM(RTRIM(b)) != '' 
    OR LENGTH(LTRIM(RTRIM(b))) != 0 
    OR LTRIM(RTRIM(b)) != null 
    OR LTRIM(RTRIM(b)) != 'NULL' 
    ) 
    ,NULL 
    ,LTRIM(RTRIM(a)) 
) 

希望這有助於。

注意:我沒有優化您的支票以檢查null條件。

+0

很高興工作!你能把這個標記爲答案來表示相同嗎? – vmachan