oracle中nvl和nvl2的用法
时间: 2023-08-15 19:03:24 浏览: 125
其它函数-oracle详实课件1
在Oracle中,NVL和NVL2函数都是用于处理空值(NULL)的。
NVL函数的语法是:NVL(expr1, expr2)。它接收两个参数,如果expr1的值为NULL,那么返回expr2的值,否则返回expr1的值。例如:
```
SELECT NVL(null, 'abc') FROM dual;
-- 结果为 'abc'
SELECT NVL('def', 'abc') FROM dual;
-- 结果为 'def'
```
NVL2函数的语法是:NVL2(expr1, expr2, expr3)。它接收三个参数,如果expr1的值不为NULL,那么返回expr2的值,否则返回expr3的值。例如:
```
SELECT NVL2(null, 'abc', 'def') FROM dual;
-- 结果为 'def'
SELECT NVL2('123', 'abc', 'def') FROM dual;
-- 结果为 'abc'
```
需要注意的是,NVL和NVL2函数的返回值数据类型是由第一个参数的数据类型决定的。如果第一个参数是数值类型,那么返回值也是数值类型;如果第一个参数是字符类型,那么返回值也是字符类型。如果第一个参数是日期类型,那么返回值也是日期类型。
阅读全文