一、实现效果
实现设备字段有值显示【加工】否则显示【未加工】
二、Oracle中NVL
2.1、NVL函数功能介绍
NVL 是Oracle的函数,功能是实现空值的转换,如果fieldName为NULL,则NVL函数返回replace_with的值,否则返回string1的值。
2.2、NVL函数格式
//fieldName表示字段名称,replace_with表示该字段内容为空时的替换值
NVL(fieldName, replace_with)
引申一下,此NVL的作用与SQLserver 中的 ISNULL( string1, replace_with) 一样。
2.3、注意事项
fieldName和replace_with必须为同一数据类型,除非显式的使用TO_CHAR函数。
//格式
NVL(TO_CHAR(numeric_column), 'some string') 其中numeric_column代指某个数字类型的值
//示例
NVL(TO_CHAR(AGE), '不合法') ,其中AGE是intl类型的值
SELECT NVL(TO_CHAR(AGE), '不合法') AGE FROM PEOPLEINFO
①oracle中如下的SQL语句会报错:查不到数据的错误
//rulescore是NULL, 则取 0值;如果记录中不存在rulecode ='YNRL'的数据.则查不出数据.
select nvl(rulescore,0) from graderule where rulecode='YNRL';
②oracle中如下的SQL语句不会报错:查不到数据的错误
//使用SUM聚合,则不报错
//【NVL函数中使用SUM聚合查询获得某个字段的合计值,如果这个值为null将给出一个预设的默认值】
//如下所示:如果记录中不存在rulecode ='YNRL'的数据.还是可以得到一行列名为:newscore),值为0的数据.
select nvl(sum(rulescore),0) newscore from graderule where rulecode='YNRL';
三、NVL2函数格式
3.1、NVL2函数功能介绍
NVL2函数是NVL函数的扩展,如果fieldName为NULL,则函数返回replace_with2,若fieldName不为null,则返回repalce_with1。
3.2、NVL2函数格式
//fieldName表示字段,如果fieldName为NULL,则函数返回replace_with2,若fieldName不为null,则返回repalce_with1。
NVL2(fieldName, replace_with1, replace_with2)
3.3、注意事项
fieldName和replace_with1、replace_with2必须为同一数据类型,除非显式的使用TO_CHAR函数。