赞
踩
- CASE case_value
- WHEN when_value THEN statement_list
- [WHEN when_value THEN statement_list] ...
- [ELSE statement_list]
- END CASE
或者
- CASE
- WHEN search_condition THEN statement_list
- [WHEN search_condition THEN statement_list] ...
- [ELSE statement_list]
- END CASE
CASE语句用于存储 程序实现复杂的条件构造。
对于第一个语法,case_value
是 一种表达将此值与 when_value
在每个表达式中 WHEN
子句,直到其中一个相等。当 如果找到相等的when_value
, 对应THEN
子句 statement_list
执行。如果没有 when_value
是相等的, ELSE
子句 statement_list
执行,如果有 一个相等此语法不能用于测试是否与NULL相等,因为NULL=NULL为false。请参见第5.3.4.6节
对于第二种语法,每个WHEN
子句 search_condition
表达式是 计算直到一个为真,在这一点上,其对应的 THEN
子句 statement_list
执行。如果没有 search_condition
等于, ELSE
子句 statement_list
执行,如果有 一个. 如果没有when_value
或 search_condition
匹配值 测试和CASE声明 不包含ELSE
子句,Case 未找到CASE语句错误结果。
每个statement_list
由一个 一个或多个SQL语句;空statement_list
不允许。
处理没有值与任何 WHEN
子句,使用ELSE
包含空 BEGIN... END块,如本例所示。(在这里使用的ELSE
子句是为了 这只是为了清楚起见,并且在其他方面并不重要)。
- DELIMITER |
-
- CREATE PROCEDURE p()
- BEGIN
- DECLARE v INT DEFAULT 1;
-
- CASE v
- WHEN 2 THEN SELECT v;
- WHEN 3 THEN SELECT 0;
- ELSE
- BEGIN
- END;
- END CASE;
- END;
- |
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。