举报投诉联系我们 手机版 热门标签 鳄鱼CMS
您的位置:鳄鱼CMS > 流程控制类指令的功能 OceanBase 流程控制函数

流程控制类指令的功能 OceanBase 流程控制函数

2023-05-13 13:31

流程控制类指令的功能 OceanBase 流程控制函数

流程控制类指令的功能 OceanBase 流程控制函数

流程控制类指令的功能

CASE

声明

CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END
OR
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END

说明

在第一个方案的返回结果中,value = compare-value。而第二个方案的返回结果是第一种条件为真。如果没有匹配的结果值,则返回结果为 ELSE 后的结果,如果没有 ELSE 部分,则返回值为 NULL。

例子

obclient> select CASE 'b' when 'a' then 1 when 'b' then 2 END;
+----------------------------------------------+
| CASE 'b' when 'a' then 1 when 'b' then 2 END |
+----------------------------------------------+
|                                            2 |
+----------------------------------------------+
1 row in set (0.01 sec)

obclient> select CASE concat('a','b') when concat('ab','') then 'a' when 'b' then 'b' end;
+--------------------------------------------------------------------------+
| CASE concat('a','b') when concat('ab','') then 'a' when 'b' then 'b' end |
+--------------------------------------------------------------------------+
| a                                                                        |
+--------------------------------------------------------------------------+
1 row in set (0.01 sec)

obclient> select case when 1>0 then 'true' else 'false' end;
+--------------------------------------------+
| case when 1>0 then 'true' else 'false' end |
+--------------------------------------------+
| true                                       |
+--------------------------------------------+
1 row in set (0.00 sec)

IF

声明

IF(expr1,expr2,expr3)

说明

如果 expr1 的值为 TRUE(即:expr1<>0 且 expr1<>NULL),返回结果为 expr2;否则返回结果为 expr3

IF() 返回结果可以是数值或字符串类型,它取决于使用的内容。

如果 expr2expr3 中只有一个明确是 NULL,则 IF() 函数的结果类型为非 NULL 表达式的结果类型。

例子

obclient> select if(5>6, 'T','F'), if (5>6, 1, 0), if(null, 'True', 'False'), if(0, 'True', 'False')G
*************************** 1. row ***************************
         if(5>6, 'T','F'): F
           if (5>6, 1, 0): 0
if(null, 'True', 'False'): False
   if(0, 'True', 'False'): False
1 row in set (0.01 sec)

IFNULL

声明

IFNULL(expr1, expr2)

说明

假设 expr1 不为 NULL,则 IFNULL() 的返回值为 expr1;否则其返回值为 expr2IFNULL() 的返回值是数值或字符串,具体情况取决于其所使用的语境。

IFNULL() 的默认返回值类型按照以下方式计算:

表达式

返回值

expr1 或 expr2 返回值为一个字符串。

字符串

expr1 或 expr2 返回值为一个浮点值。

浮点

expr1 或 expr2 返回值为一个整数。

整数

假如 expr1 和 expr2 都是字符串,且其中任何一个字符串区分大小写,则返回结果是区分大小写。

例子

obclient> SELECT IFNULL('abc', null), IFNULL(NULL+1, NULL+2), IFNULL(1/0, 0/1);
+---------------------+------------------------+------------------+
| IFNULL('abc', null) | IFNULL(NULL+1, NULL+2) | IFNULL(1/0, 0/1) |
+---------------------+------------------------+------------------+
| abc                 |                   NULL |           0.0000 |
+---------------------+------------------------+------------------+
1 row in set (0.01 sec)

NULLIF

声明

NULLIF(expr1, expr2)

说明

如果 expr1 = expr2 成立,那么返回值为 NULL,否则返回值为 expr1。这和 CASE WHEN 

expr1 = expr2 THEN NULL ELSE expr1 END 相同。注意,如果参数不相等,则两次求得的值为 expr1

例子

obclient> SELECT NULLIF('ABC', 123), NULLIF('123',123), NULLIF(NULL, 'abc');
+--------------------+-------------------+---------------------+
| NULLIF('ABC', 123) | NULLIF('123',123) | NULLIF(NULL, 'abc') |
+--------------------+-------------------+---------------------+
| ABC                | NULL              | NULL                |
+--------------------+-------------------+---------------------+
1 row in set, 1 warning (0.01 sec)

ORA_DECODE

声明

ORA_DECODE(条件, 值1, 返回值1, 值2, 返回值2, ... 值n, 返回值n, 缺省值)

说明

ORA_DECODE() 函数功能等同于 Oracle 数据库的 DECODE() 函数功能。

该函数的含义如下:

IF 条件=值1
THEN RETURN(返回值1)
ELSIF 条件=值2
THEN RETURN(返回值2)
......
ELSIF 条件=值n
THEN RETURN(返回值n)
ELSE RETURN(缺省值)
END IF


阅读全文
以上是鳄鱼CMS为你收集整理的流程控制类指令的功能 OceanBase 流程控制函数全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
  •  OceanBase ALTER USER

    OceanBase ALTER USER

    2023-06-07 OceanBase ALTER USER

    描述该语句主要用于执行以下操作:修改 OceanBase 用户的密码。锁定或者解锁用户,且被锁定的用户不允许登录。说明必须拥有全局 ...

  •  OceanBase POWER

    OceanBase POWER

    2023-06-03 OceanBase POWER

    ​POWER​函数返回​x​的​y​次幂。语法POWER (x, y)参数参数说明x,yx和y为数值型(NUMBER、FLOAT、BINARY_FLOAT和BINARY_DOU...

  •  OceanBase INITCAP

    OceanBase INITCAP

    2023-04-15 OceanBase INITCAP

    ​INITCAP​函数返回字符串并将字符串中每个单词的首字母大写,其他字母小写。语法INITCAP(c1)参数参数说明c1字符串。字符串类型...

  •  OceanBase SYSTIMESTAMP

    OceanBase SYSTIMESTAMP

    2023-04-16

    ​SYSTIMESTAMP​函数返回系统当前日期,返回值的秒的小数位包含 6 位精度,且包含当前时区信息。注意该函数不依赖于当前会话时...

  •  OceanBase TO_YMINTERVAL

    OceanBase TO_YMINTERVAL

    2023-04-25

    TO_YMINTERVAL函数将一个CHAR、VARCHAR2、NCHAR或NVARCHAR2数据类型的字符串转换为一个INTERVAL YEAR TO MONTH数据类型的值,该...

© 2024 鳄鱼CMS eyucms.com 版权所有 联系我们