nullif::= NULLIF "(" expr1 "," expr2 ")"NULLIF函数用于对两个参数的值进行比较,相等时返回NULL,不相等时返回expr1的值。本函数常用于防止程序中因为出现除以零错误而抛出异常。
expr1和expr2均为YashanDB认可的通用表达式,且存在如下约束:
本函数根据以下规则确定返回结果的数据类型:
示例
--expr1和expr2的值不相等时
SELECT NULLIF('123','456') res FROM DUAL;
RES
-----
123
--expr1和expr2的值相等时
SELECT NULLIF('123','123') res FROM DUAL;
RES
-----
--sales_info表包含了机构的11001产品的销售数量和金额信息,现对其增加一条数量和金额均为0的记录
INSERT INTO sales_info VALUES ('2021','06','0101','11001',0,0,'');
--当需要计算11001产品的在每个月的销售单价时,会出现除以0错误
SELECT year,month,product,amount/quantity
FROM sales_info
WHERE product='11001';
[1:33]YAS-00011 divided by zero
--使用NULLIF函数提前预防此类错误,减少异常捕获处理,避免应用在此中断
SELECT year,month,product,amount/NULLIF(quantity,0) price
FROM sales_info
WHERE product='11001';
YEAR MONTH PRODUCT PRICE
----- ----- --------- -----------
2021 10 11001 15
2001 01 11001 16.6666667
2000 12 11001 15
2015 03 11001 15
2021 05 11001 15
2021 06 11001
2015 11 11001 15原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。