WHEN .... THEN条件在SQL中的CASE中是允许的

use*_*398 0 sql oracle decode case

我正在使用CASE&DECODE.CASE的SYNTAX是:

CASE  [ expression ]
  WHEN condition_1 THEN result_1
  WHEN condition_2 THEN result_2
  ...
  WHEN condition_n THEN result_n
  ELSE result
END
Run Code Online (Sandbox Code Playgroud)

如果我们写任何条件,我们可以使用WHEN ...那么写它.

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

感谢您的回复.其实我得到了我的问题的答案.我得到了我的问题的答案.

实际上我们只能在一个CASE中编写255个比较.每个WHEN ... THEN子句被认为是2个比较.

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

相同的限制适用于解码.

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

a_h*_*ame 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