MariaDB NVL() 函数使用指南
在 MariaDB 中,NVL() 是一个内置函数,如果第一个参数为 NULL,返回第二个参数,否则返回第一个参数。
NVL() 从 MariaDB 10.3 开始作为 IFNULL() 函数的同义词被引入,以兼容 Oracle。
MariaDB NVL() 语法
这里是 MariaDB NVL() 函数的语法:
NVL(expr1, expr2)
参数
expr1- 必需的。判断此表达式是否为
NULL。 expr2- 必需的。当
expr1为NULL时,返回expr2。
返回值
如果 expr1 不为 NULL,NVL() 函数返回 expr1,否则返回 expr2。
MariaDB NVL() 示例
下面的示例展示了 MariaDB NVL() 函数的用法。
简单示例
SELECT NVL(NULL, 'It is NULL'),
NVL('I am not NULL', 'I am NULL');
输出:
+-------------------------+-----------------------------------+
| NVL(NULL, 'It is NULL') | NVL('I am not NULL', 'I am NULL') |
+-------------------------+-----------------------------------+
| It is NULL | I am not NULL |
+-------------------------+-----------------------------------+产生默认值
NVL() 函数可以在查询时用来生成一个列的默认值。
首先,我们创建一个表 test_NVL 用于演示:
DROP TABLE IF EXISTS test_NVL;
CREATE TABLE test_NVL (
col VARCHAR(50)
);
让我们插入几个数据:
INSERT INTO test_NVL VALUES ('A'), ('B'), (NULL), ('D');
现在表中具有了如下数据:
+------+
| col |
+------+
| A |
| B |
| NULL |
| D |
+------+
我们知道其中一行的值为 NULL。如果我们想为值为 NULL 的列设置一个默认值 Nothing,请使用下面的语句:
SELECT
col, NVL(col, 'Nothing') col_with_default
FROM
test_NVL;
输出:
+------+------------------+
| col | col_with_default |
+------+------------------+
| A | A |
| B | B |
| NULL | Nothing |
| D | D |
+------+------------------+我们看到,含有 NULL 的行中的 col_with_default 列的内容变成了 Nothing。
结论
在 MariaDB 中,NVL() 是一个内置函数,如果第一个参数为 NULL,返回第二个参数,否则返回第一个参数。