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
,返回第二个参数,否则返回第一个参数。