Firebird - обновляет значение строки в таблице, исходя из некоторых условий - PullRequest
0 голосов
/ 03 октября 2011

Насколько я помню, я мог сделать такое обновление в 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 Ответ

2 голосов
/ 03 октября 2011

Какую версию FireBird вы используете?Я тестировал с 2.5, а второй (с использованием CASE) работает, как и ожидалось.

FireBird не поддерживает оператор IF в DSQL, но вы можете использовать внутреннюю функцию IIF, то есть следующие действия тоже:

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