如果 expr2
和 expr3
的数据类型不同,则 OceanBase 将其中一个隐式转换为另一个。 如果它们不能隐式转换,则数据库返回错误。 如果 expr2
是字符或数字数据,则隐式转换规则如下:
如果
expr2
是NUMBER
、FLOAT
、BINARY_FLOAT
或BINARY_DOUBL
数值型数据,则 OceanBase 确定哪个参数具有最高的数值优先级,隐式地将另一个参数转换为该数据类型,并返回该数据类型。
如果 expr1
、expr2
是 NULL
,则返回 。如果 expr1
是 CHAR
、NCHAR
、NVARCHAR
、VARCHAR2
或 VARCHAR
字符型数据,则返回 expr1
字符集的 VARCHAR2
。如果 expr1
是 NUMBER
、FLOAT
、BINARY_FLOAT
或 BINARY_DOUBLE
数值型数据,则返回 expr1
中具有最高数字优先级的数据类型。
假设有一张表 EMPLOYEES,给员工姓名列 name、薪资列 salary 和佣金列 commission_pct 里面插入数据,执行以下语句:
使用 NVL2
函数查询员工的总收入。如果员工的 commission_pct 列不为空,则员工的收入为工资加佣金,否则,收入仅仅为工资。执行以下语句: