数据库nvl函数?oracle中nvl()函数有什么用啊
很多朋友对于数据库nvl函数和oracle中nvl()函数有什么用啊不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
oracle中nvl()函数有什么用啊
作用:判断某个值是否为空值,若不为空值则输出,若为空值,返回指定值。
详细解释如下:
1、nvl()函数的格式如下:NVL(expr1,expr2);
2、含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。
3、例:select name,NVL(name,-1) from user;运行后,结果返回两列数值,若name为空,则返回-1,若name不为空值,则返回其自身。
拓展资料
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的适应高吞吐量的数据库解决方案。
参考资料:百度百科:nvl函数
在oracle数据库中nvl()是什么函数
nvl()函数
语法:
NVL(eExpression1, eExpression2);
参数:
eExpression1, eExpression2。
如果 eExpression1的计算结果为 null值,则 NVL()返回 eExpression2。如果 eExpression1的计算结果不是 null值,则返回 eExpression1。
eExpression1和 eExpression2可以是任意一种数据类型。如果 eExpression1与 eExpression2的结果皆为 null值,则 NVL()返回.NULL.。
NVL( string1, replace_with)。
功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值。
引申一下,此NVL的作用与SQLserver中的 ISNULL( string1, replace_with)一样。
注意事项:string1和replace_with必须为同一数据类型,除非显式的使用TO_CHAR函数。
例:NVL(TO_CHAR(numeric_column),'some string')其中numeric_column代指某个数字类型的值。
例:nvl(yanlei777,0)> 0。
NVL(yanlei777, 0)的意思是如果 yanlei777是NULL,则取 0值。
通过查询获得某个字段的合计值,如果这个值为null将给出一个预设的默认值。
扩展资料:
nvl函数例子:
select nvl(sum(t.dwxhl),1)
from tb_jhde t。
就表示如果sum(t.dwxhl)= NULL就返回 1。
另一个有关的有用方法。
declare i integer。
select nvl(sum(t.dwxhl),1) into i from tb_jhde t where zydm=-1这样就可以把获得的合计值存储到变量。i中,如果查询的值为null就把它的值设置为默认的1。
oracle中:
select nvl(rulescore,0) from zwjc_graderule where rulecode='FWTD';
如果记录中不存在rulecode='FWTD'的数据.则查不出数据。
select nvl(rulescore,0) into rule_score from zwjc_graderule where rulecode='FWTD';会报查不到数据的错。
select nvl(sum(rulescore),0) from zwjc_graderule where rulecode='FWTD';
如果记录中不存在rulecode='FWTD'的数据.还是可以得到一行列名为nvl(rulescore,0),值为0的数据。
select nvl(sum(rulescore),0) rule_score from zwjc_graderule where rulecode='FWTD';不会报错。
数据库中nvl是什么意思
NVL是通过查询获得某个字段的合计值,如果这个值为null将给出一个预设的默认值。
如果是NULL,则取指定值。
具体使用格式如下:
NVL( string1, replace_with)
具体功能如下:
如果string1为NULL,则NVL函数返回replace_with的值,否则返回原来的值。
引申一下,此NVL的作用与SQLserver中的 ISNULL( string1, replace_with)一样。
具体使用注意事项如下:
string1和replace_with必须为同一数据类型,除非显式的使用TO_CHAR函数。
例:NVL(TO_CHAR(numeric_column),'some string')其中numeric_column代指某个数字类型的值。
例:nvl(yanlei777,0)> 0
NVL(yanlei777, 0)的意思是如果 yanlei777是NULL,则取 0值
Oracle中nvl和nvl2这两个函数的区别
1.NVL()语法:nvl(expr1,expr2)
如果 expr1是 null值,则 nvl函数返回 expr2,否则就返回 expr1。
说明:参数 expr1、expr2可以是任何数据类型,但应该保持相同。若两者数据类型不一致,则Oracle数据库会隐式的转换其中一个的数据类型使其保持和另一个一致,若无法转换则会返回错误。隐式转换的实施规则如下:
(1)若 expr1是字符数据,则Oracle数据库在比较之前就会把 expr2转换成 expr1的数据类型并且返回 VARCHAR2数据类型到 expr1的字符集。
(2)若 expr1是数值型,则Oracle数据库决定哪个参数具有最高数值优先级,并把另一个参数的数据类型隐式转换成这种数据类型,并返回这种数据类型的数据。
实例:返回员工姓名和奖金,若该员工没有奖金则返回 Not Applicable
SELECT last_name, NVL(TO_CHAR(commission_pct),'Not Applicable')"COMMISSION"
FROM employees
WHERE last_name LIKE'B%'
ORDER BY last_name;
ORACLE NVL和 NVL2函数的使用
2.NVL2()
语法:nvl2(expr1,expr2,expr3)
如果 expr1不是 null值,则 nvl函数返回 expr2,否则就返回 expr3。参数可以返回任何数据类型的值,但是 expr2和 expr3不能是 LONG型的数据类型。
说明:若 expr2和 expr3的数据类型不同:
(1)若 expr2是字符数据,则Oracle数据库在比较之前就会把 expr3转换成 expr2的数据类型除非 expr3是null。在这种情况下,隐式数据转换是不必要的。Oracle数据库返回 VARCHAR2数据类型到 expr2的字符集。
(2)若 expr2是数值型,则Oracle数据库决定哪个参数具有最高数值优先级,并把另一个参数的数据类型隐式转换成这种数据类型,并返回这种数据类型的数据。
实例:返回员工收入,看员工收入(income)是否由工资(salary)加奖金(commission)组成,这取决于commission_pct列是否为null
SELECT last_name, salary, NVL2(commission_pct, salary+(salary* commission_pct), salary) income FROM employees
WHERE last_name like'B%'
ORDER BY last_name;
ORACLE NVL和 NVL2函数的使用
如果你还想了解更多这方面的信息,记得收藏关注本站。