2011-10-03 31 views
0

至於我記得我可以在MS SQL Server執行這樣的更新:用於更新使用CASE火鳥 - 更新行的表值基礎上的一些條件

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

或不同的方式:

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

Firebird中有這些方法嗎?我嘗試了兩種方式,但沒有運氣。

感謝您的回答。

回答

2

您正在使用哪個版本的FireBird?我測試2.5和第二個(使用CASE)按預期工作。

火鳥不支持IF聲明DSQL但是你可以使用IIF內部函數,也就是後續的工作太:

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

感謝您與IFF尖端,確實是第二條語句是工作現在也。看來我在測試這個查詢時犯了一些錯誤,並在這裏寫了一個正確的版本。 – Wodzu