【问题标题】:Firebird - update row's value in table basing on some conditionFirebird - 根据某些条件更新表中的行值
【发布时间】:2011-11-29 19:08:22
【问题描述】:

据我所知,我可以在 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 中是否可以使用这些方法?我已经尝试了两种方法,但都没有运气。

感谢您的回答。

【问题讨论】:

    标签: firebird sql-update


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢 IFF 的提示,事实上,第二个语句现在也有效。看来我在测试查询时犯了一些错误,并在这里写了一个正确的版本。
    猜你喜欢
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多