存储过程中的Firebird CASE语句

Wel*_*Wel 5 sql firebird stored-procedures case flow-control

我试图case在存储过程中使用该语句,但我得到了"Token unknown".case存储过程不支持?谢谢

ain*_*ain 6

正如安德烈写的那样,CASE只有在SELECT陈述中才有.所以使用它的技巧是从一些只有一行的表中选择,如RDB$DATABASE:

SELECT
  CASE
    ...
  END
FROM RDB$DATABASE INTO :myVAR;
Run Code Online (Sandbox Code Playgroud)

当然,这只有在你想根据某些条件为变量赋值时才有用,如果你需要一个控制流语句,那么IF / ELSE梯形是唯一的选择.


And*_*jeŭ 3

您只能在 SELECT 运算符中使用 CASE 语句。不允许单独使用。