Firebird-更新行';基于某些条件的表中的s值

Firebird-更新行';基于某些条件的表中的s值,firebird,sql-update,Firebird,Sql Update,据我记忆所及,我可以在MS SQL Server中进行这样的更新: UPDATE MyTable SET MyValue = (IF SomeCondition THEN 1 ELSE 0 END) 或使用用例更新的不同方式: UPDATE MyTable SET MyValue = (CASE WHEN SomeCondition1 THEN 1 ELSE 0 END) 这些方法在Firebird中是否可行?我两种方法都试过,但都不走运 谢谢您的回答。您使用的是哪个版本的FireBir

据我记忆所及,我可以在MS SQL Server中进行这样的更新:

UPDATE MyTable SET MyValue = (IF SomeCondition THEN 1 ELSE 0 END)
或使用用例更新的不同方式:

UPDATE MyTable  SET MyValue  = (CASE WHEN SomeCondition1 THEN 1 ELSE 0 END)
这些方法在Firebird中是否可行?我两种方法都试过,但都不走运


谢谢您的回答。

您使用的是哪个版本的FireBird?我使用2.5进行了测试,第二个(使用
CASE
)按预期工作

FireBird不支持DSQL中的
IF
语句,但您可以使用
IIF
内部函数,即也可以使用以下函数:

UPDATE MyTable SET MyValue = iif(SomeCondition, 1, 0)

感谢IFF提供的提示,事实上,第二个声明现在也在起作用。似乎我在测试查询时犯了一些错误,并在这里编写了正确的版本。