Nested If-Then-Else usage in DataStage
我正在尝试在DataStage的Transformation Stage中编写以下嵌套的If-Then-else语句,但它给了我编译错误。 有人可以告诉我还有其他方法吗?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | If IsNotNull(DSLink16.DECISION_ID) Then ( If DSLink16.DECISION_RESULT = 1 Then ( If DSLink16.DECISION_CODE = 'ALOW' Then 'DENY' Else If DSLink16.DECISION_CODE = 'DENY' Then 'ALOW' Else If DSLink16.DECISION_CODE = 'NOIS' Then 'NOIS' ) Else If DSLink16.DECISION_RESULT = 2 Then 'DSMS' Else If DSLink16.DECISION_RESULT = 3 Then ( If APPELANT_CODE = 'CLMT' Then 'ALOW' Else 'DENY' ) Else If DSLink16.DECISION_RESULT = 4 Then ( If APPELANT_CODE = 'CLMT' Then 'DENY' Else 'ALOW' ) Else If DSLink16.DECISION_RESULT = 5 Then DSLink16.DECISION_CODE Else If DSLink16.DECISION_RESULT = 6 or DSLink16.DECISION_RESULT = 7 or DSLink16.DECISION_RESULT = 8 Then 'DENY' ) Else ( If DSLink16.DECISION_RESULT = 1 Then 'DENY' Else If DSLink16.DECISION_RESULT = 2 Then 'DENY' Else If DSLink16.DECISION_RESULT = 3 Then 'ALOW' Else If DSLink16.DECISION_RESULT = 4 Then 'DENY' Else If DSLink16.DECISION_RESULT = 5 Then 'ALOW' Else If DSLink16.DECISION_RESULT = 6 Then 'DENY' Else If DSLink16.DECISION_RESULT = 7 Then 'DENY' Else If DSLink16.DECISION_RESULT = 8 Then 'DENY' ) |
假设
1 2 | If DSLink16.DECISION_RESULT = 3 Or DSLink16.DECISION_RESULT = 5 Then"ALOW" Else"DENY" |
似乎每个If应具有与其关联的相应Else块。 以下对我有用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | If IsNotNull(DSLink16.DECISION_ID) Then ( If DSLink16.DECISION_RESULT = 1 Then ( If DSLink16.DECISION_CODE = 'ALOW' Then 'DENY' ELSE If DSLink16.DECISION_CODE = 'DENY' Then 'ALOW' ELSE 'NOIS' ) ELSE If DSLink16.DECISION_RESULT = 2 Then 'DSMS' ELSE If DSLink16.DECISION_RESULT = 3 Then ( If DSLink16.APPELANT_CODE = 'CLMT' then 'ALOW' Else 'DENY' ) ELSE If DSLink16.DECISION_RESULT = 4 Then ( If DSLink16.APPELANT_CODE = 'CLMT' Then 'DENY' Else 'ALOW' ) ELSE If DSLink16.DECISION_RESULT = 5 Then DSLink16.DECISION_CODE ELSE 'DENY' ) Else ( If DSLink16.DECISION_RESULT = 1 Then 'DENY' ELSE If DSLink16.DECISION_RESULT = 2 Then 'DENY' ELSE If DSLink16.DECISION_RESULT = 3 Then 'ALOW' ELSE If DSLink16.DECISION_RESULT = 4 Then 'DENY' ELSE If DSLink16.DECISION_RESULT = 5 Then 'ALOW' ELSE If DSLink16.DECISION_RESULT = 6 Then 'DENY' ELSE If DSLink16.DECISION_RESULT = 7 Then 'DENY' ELSE If DSLink16.DECISION_RESULT = 8 Then 'DENY' ELSE 'DENY' ) |