AS400でif-elseステートメントを含むSQLを実行しようとしていますが、機能しません。ビューを実行するために、iシリーズナビゲーターを使用してビューを作成しています。
SELECT IF FIELD1 IS NOT NULL THEN 'AAA' ELSE 'BBB' END IF
FROM LIB.TABLE1
私が得ているエラーは次のとおりです。
SQL State: 42601
Vendor Code: -199
Message: [SQL0199] Keyword IS not expected. Valid tokens: , FROM INTO. Cause . .
書かずに試したのはnullですが代わりに
SELECT IF FIELD1 ='' THEN 'AAA' ELSE 'BBB' END IF
FROM LIB.TABLE1
次に、次のエラーが発生します。
SQL State: 42601
Vendor Code: -104
Message: [SQL0104] Token = was not valid. Valid tokens: , FROM INTO. Cause . . . . . : A syntax error was detected at token =. Token = is not a
代わりにCASE
式を使用してください。
SELECT CASE WHEN FIELD1 IS NOT NULL THEN 'AAA' ELSE 'BBB' END
FROM LIB.TABLE1;
IF
は制御フロー構造です:
IF condition THEN
SELECT ...
ELSE
SELECT ...
END IF