回答

收藏

DB2 / 400中的if-else语句

技术问答 技术问答 112 人阅读 | 0 人回复 | 2023-09-12

我在尝试AS400中运行包含if-else语句的SQL,但它不起作用。我在用。i Series Navigator创建一个View,便于操作。: E: E5 Q' I( R3 Q
SELECT IF FIELD1 IS NOT NULL THEN 'AAA' ELSE 'BBB' END IFFROM LIB.TABLE1我的错误是:6 }, {1 R& q$ M( N" r) s
SQL State: 42601Vendor Code: -199Message: [SQL0199] Keyword IS not expected. Valid tokens: ,FROM INTO. Cause . .我没写就试过null但相反
: l- Q5 Z4 ]1 M* h4 N- c# BSELECT IF FIELD1 ='' THEN 'AAA' ELSE 'BBB' END IF    FROM LIB.TABLE1然后我犯了以下错误:
" B$ n, O/ R1 Q9 W% Q  ~SQL State: 42601Vendor Code: -104Message: [SQL0104] Token = was not valid. Valid tokens: ,FROM INTO. Cause . . . . . :   A syntax error was detected at token =.  Token = is not a                ) p' `+ L% D1 d( A+ Z) f
    解决方案:                                                               
; `7 O) `2 c: x9 P& u7 Z                                                                使用CASE表达式替代:% N8 T- s5 n" n; G: ]# V
SELECT CASE WHEN FIELD1 IS NOT NULL THEN 'AAA' ELSE 'BBB' END FROM LIB.TABLE1;IF 控制流结构:% [* ]/ [5 \$ d4 ~" I/ k& V
IF condition THEN    SELECT ...ELSE    SELECT ...END IF
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则