0

我正在使用 CASE & DECODE。CASE 的语法是:

CASE  [ expression ]
  WHEN condition_1 THEN result_1
  WHEN condition_2 THEN result_2
  ...
  WHEN condition_n THEN result_n
  ELSE result
END

在 CASE 中,如果我们编写任何条件,我们可以使用 WHEN...THEN 来编写它。

所以,你能告诉我在一个案例中我们可以写多少次 WHEN... THEN 条件。是他们在一个案例中写 WHEN....THEN 条件的任何限制。

感谢您的回复。实际上我得到了我的问题的答案。我得到了我的问题的答案。

实际上,我们只能在一个 CASE 中编写 255 个比较。每个 WHEN...THEN 子句都被视为 2 次比较。

我们可以在一个 CASE 语句中编写 255 个比较。每个 WHEN...THEN 子句都被视为 2 次比较。

相同的限制适用于解码。

DECODE 函数中的最大参数数为 255。这包括:EXPRESSION、SEARCH 和 RESULT 参数。

4

2 回答 2

7

直接来自http://docs.oracle.com/cd/E11882_01/server.112/e41084/expressions004.htm#SQLRF20037的 11.2 手册

CASE 表达式中的最大参数数为 65535。所有表达式都计入此限制,包括简单 CASE 表达式的初始表达式和可选的 ELSE 表达式。每个 WHEN ... THEN 对都算作两个参数。为避免超出此限制,您可以嵌套 CASE 表达式,以便 return_expr 本身是 CASE 表达式

(强调我的)

编辑
显然,这个限制在 11.2 中已显着增加,因为在 11.1 和 10.2 手册中,限制记录为 255

http://docs.oracle.com/cd/B19306_01/server.102/b14200/expressions004.htm#i1033392
http://docs.oracle.com/cd/B28359_01/server.111/b28286/expressions004.htm#i1033392

于 2012-05-02T07:20:48.007 回答
-1

对此没有限制,您可以随心所欲地做...但是您的目标/方法是什么?我认为当模型出现问题时,您应该解决如此大的案例。

于 2012-05-02T06:42:23.377 回答