Возможно ли иметь булевы выражения в предложении select в Firebird? - PullRequest
1 голос
/ 29 марта 2020

В mysql вы можете сделать select name <> '' from persons where person_id = 1000 и он вернет 1 или ноль, есть ли способ сделать что-то подобное в Firebird с DML? Основываясь на том, что я смог определить, я не думаю.

1 Ответ

2 голосов
/ 29 марта 2020

В Firebird 3 и более поздних версиях это возможно, так как введение типа данных BOOLEAN теперь позволяет использовать этот тип выражения в предложении select. Такое логическое выражение вернет true / false, хотя некоторые инструменты могут отобразить это для вас как 1/0.

В Firebird 2.5 и более ранних версиях вам придется сопоставлять это самостоятельно, например, используя CASE:

select case when name <> '' then 1 else 0 end from atable where person_id = 1000

или IIF:

select iif(name <> '', 1, 0) from atable where person_id = 1000

Это также работает в Firebird 3 и выше.

...