ITPub博客

首页 > 数据库 > 国内数据库 > GBASE南大通用技术分享:GBase 8a数据库控制流函数简介(一)

GBASE南大通用技术分享:GBase 8a数据库控制流函数简介(一)

原创 国内数据库 作者:GBASE南大通用 时间:2026-02-12 14:42:41 0 删除 编辑

南大通用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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
GBASE南大通用,致力于成为用户最信赖的数据库产品供应商!

注册时间:2020-07-16

  • 博文量
    1312
  • 访问量
    1290893