我在查询中有这一行:
IF (TEST_DESC CONTAINING 'OPEN') THEN TEST_DESC = 'OPEN';
但这不起作用。 Firebird说无法准备,因为查询为空, 当我删除; 时,它表示令牌未知 - 第8行,第10列。 (
我想使用IF ELSE查看 TEST_DESC 字段是否包含 OPEN ,如果有,则输出 OPEN 字样场。 TEST_DESC字段包含 SCL_OPEN 我只想显示 OPEN 。另一个是另一个值包含 DRV_SHORT ,我只想显示 SHORT 。
提前致谢!
答案 0 :(得分: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')
。