Оператор Firebird CASE внутри хранимой процедуры - PullRequest
5 голосов
/ 01 октября 2011

Я пытался использовать оператор case внутри хранимой процедуры, но я получил «Token unknown».case не поддерживается в хранимой процедуре?Спасибо

Ответы [ 2 ]

6 голосов
/ 01 октября 2011

Как писал Андрей, CASE доступно только в SELECT операторах.Таким образом, хитрость его использования заключается в том, чтобы выбрать из некоторой таблицы, которая имеет только одну строку, например RDB$DATABASE:

SELECT
  CASE
    ...
  END
FROM RDB$DATABASE INTO :myVAR;

Конечно, это полезно только в том случае, если вы хотите присвоить значение переменной на основев некоторых условиях, если вам нужен оператор потока управления, тогда IF / ELSE лестница - единственный вариант.

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

Вы можете использовать оператор CASE только в операторе SELECT. Автономное использование запрещено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...