2013-10-21 74 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