Firebird CASE statement inside stored procedure

William picture William · Oct 1, 2011 · Viewed 7.1k times · Source

I was trying to use the case statement inside a stored procedure but I got "Token unknown" on it. case is not supported in stored procedure? Thanks

Answer

ain picture ain · Oct 1, 2011

As Andrei wrote, CASE is only available in SELECT statements. So the trick to use it is to select from some table which has only one row, like RDB$DATABASE:

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

Of course, this is only usefull in case you want to assign value to a variable based on some conditions, if you need a control flow statement then IF / ELSE ladder is the only option.