Firebird - 根据某些条件更新表中的行值

时间:2011-10-03 09:29:27

标签: firebird sql-update

据我记得,我可以在MS SQL Server中进行此类更新:

UPDATE MyTable SET MyValue = (IF SomeCondition THEN 1 ELSE 0 END)

或使用CASE进行更新的不同方式:

UPDATE MyTable  SET MyValue  = (CASE WHEN SomeCondition1 THEN 1 ELSE 0 END)

Firebird中是否有可能使用这些方法?我已经尝试过两种方式,但没有运气。

感谢您的回答。

1 个答案:

答案 0 :(得分:2)

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

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

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