CASE语句从一系列条件中进行选择,并运行相应的语句。
简单CASE语句计算单个表达式,并将其与几个潜在值进行比较。
搜索CASE语句计算多个布尔表达式,并选择第一个值为TRUE的表达式。
简单CASE语句具有以下结构。
selector是一个表达式(通常是单个变量)。每个selector_value可以是文字或表达式(对于完整的语法,请参阅“CASE”)。
如果selector等于第一条语句值selector_value_1,则不计算剩余条件。如果没有任何selector_value等于selector,则执行else_statements语句,如果没有该语句,则引发预定义的异常CASE_NOT_FOUND。
示例2.11使用一个简单的CASE语句将单个值与多个可能值进行比较。请读者与示例2.10中的IF THEN ELSIF语句进行对比。
注意: 如果简单CASE语句中的selector的值为NULL,则它不能被WHEN NULL匹配,而需要使用带有WHEN条件IS NULL的搜索CASE语句。
示例2.11: 简单的CASE语句。
程序代码如下。
程序运行结果如下。
搜索CASE语句具有以下结构。
搜索CASE语句运行条件为真的第一条语句,不计算剩余条件。如果没有条件为真,即CASE语句如果存在else_statements,则运行,否则引发预定义异常CASE_NOT_FOUND。
示例2.12中的搜索CASE语句在逻辑上等价于例2.11中的简单CASE语句。
示例2.12: 搜索CASE语句。
程序代码如下。
程序运行结果如下。