Firebird-更新行';基于某些条件的表中的s值
据我记忆所及,我可以在MS SQL Server中进行这样的更新: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
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提供的提示,事实上,第二个声明现在也在起作用。似乎我在测试查询时犯了一些错误,并在这里编写了正确的版本。