南大通用GBase 8a数据库控制流函数CASE介绍:
语法
CASE value WHEN [compare-value] THEN result [WHEN [compare-value]
THEN result ...] [ELSE result] END
函数说明
逐一匹配,当满足 value=compare-value 时,返回对应的 result,如果未找到匹配项,则返回 ELSE 后的 result。如果没有 ELSE 子句,默认返回 NULL。
如果条件中 compare-value 有重叠,即 value 值满足多个 compare-value 条件时,只返回第一个满足的值。
语法
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...]
[ELSE result] END
函数说明
逐一判断, 当 condition 为 TRUE 时, 返回对应的 result, 如果 condition 全为 FALSE,则返回 ELSE 后的 result。如果没有 ELSE 子句,默认返回 NULL。
一个 CASE 表达式的默认返回值类型是所有返回值的相容集合类型,具体情况视其所在语境而定:如用在字符串语境中,则返回结果为字符串;
如用在数字语境中,则返回结果为十进制值的实数值或整数值。
示例
示例 1:value=compare-value,返回对应的 result 值。
gbase> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE
'more' END FROM dual;
+-------------------------------------------------------------+
| CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END |
+-------------------------------------------------------------+
| one |
+-------------------------------------------------------------+
1 row in set
示例 2:condition 为 TRUE 时,返回对应的 result 值。
gbase> SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END FROM
dual;
+---------------------------------------------+
| CASE WHEN 1>0 THEN 'true' ELSE 'false' END |
+---------------------------------------------+
| true |
+---------------------------------------------+
1 row in set
示例 3:value 不等于 compare-value,返回值为 NULL。
gbase> SELECT CASE 'c' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END
FROM dual;
+-----------------------------------------------+
| CASE 'c' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END |
+-----------------------------------------------+
| NULL |
+-----------------------------------------------+
1 row in set
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69979120/viewspace-3110596/ ,如需转载,请注明出处,否则将追究法律责任。