2013-10-21 73 views
1

我有這條線我的查詢:火鳥的if else

IF (TEST_DESC CONTAINING 'OPEN') THEN TEST_DESC = 'OPEN'; 

,但不工作。火鳥說不能準備,因爲查詢是空的, 當我刪除;它說令牌未知 - 8行,第10列 (

我想用IF ELSE看,如果TEST_DESC字段包含OPEN,如果有,它會輸出字。在現場OPEN該TEST_DESC字段包含SCL_OPEN我只是想顯示OPEN,而另外一個是,其他值包含DRV_SHORT,我想只顯示SHORT

在此先感謝!

回答

4

IF/THEN/ELSE是PSQL construct

對於普通的SQL查詢,我推斷你從你的語法錯誤使用,使用CASE statement

... 
CASE 
WHEN TEST_DESC LIKE '%OPEN%' 
    THEN 'OPEN' 
WHEN TEST_DESC LIKE '%SHORT%' 
    THEN 'SHORT' 
ELSE 'UNKNOWN' 
END 
... 

還有一個IIF()函數近似的語法你想要的:IIF(TEST_DESC CONTAINING 'FOO', 'FOO', 'NO FOO')

另請參閱此Firebird FAQ entry