oracle中使用sql查询时字段为空 赋值默认值 ( 通过 nvl( )函数 )

简介: oracle中使用sql查询时字段为空 赋值默认值 ( 通过 nvl( )函数 )

函数声明:nvl(col,val)


说明:当col为空时取val作为返回值,当col不为空时取col值。


作用:最主要是数据格式化,如计算金额,不想出现空数据(计算过程 两个参数有一个为空null,都会丢失结果集~返回空)。null值+,-,*,/数字等于null,导致结果集丢失返回空 ,所以在表达式中对可能为空的值要使用用nvl解决空值问题。。


反例:


   两个字段(  v."SETTLEMENT_MONEY", v."REFUND_MONEY")   做减法      


  如第四条数据  SETTLEMENT_MONEY  =200   REFUND_MONEY=0   肯定是得不到结果集


如下:

d34927b23c0a4225a3e6cd389787faea.png


正例:  nvl(col,val)函数使用


select
      v.SETTLEMENT_MONEY,
      v.REFUND_MONEY,
  nvl(v."SETTLEMENT_MONEY", 0) - nvl(v."REFUND_MONEY", 0) TOTAL
 from CUSTOM_BILL v


结果集如下: nvl(v."SETTLEMENT_MONEY", 0) - nvl(v."REFUND_MONEY", 0) TOTAL


                   当SETTLEMENT_MONEY为空时取0作为返回值,当SETTLEMENT_MONEY不为空时取SETTLEMENT_MONEY值。


664c820d8b064228ab898948b0d0a438.png


目录
相关文章
|
1月前
|
SQL 存储 数据库
SQL部分字段编码设置技巧与方法
在SQL数据库管理中,设置字段的编码对于确保数据的正确存储和检索至关重要
|
1月前
|
SQL Oracle 关系型数据库
SQL优化-使用联合索引和函数索引
在一次例行巡检中,发现一条使用 `to_char` 函数将日期转换为字符串的 SQL 语句 CPU 利用率很高。为了优化该语句,首先分析了 where 条件中各列的选择性,并创建了不同类型的索引,包括普通索引、函数索引和虚拟列索引。通过对比不同索引的执行计划,最终确定了使用复合索引(包含函数表达式)能够显著降低查询成本,提高执行效率。
|
30天前
|
SQL 存储 Serverless
SQL语句拆分时间字段的技巧与方法
在数据库操作中,经常需要处理时间数据
|
1月前
|
SQL 数据库 数据库管理
数据库SQL函数应用技巧与方法
在数据库管理中,SQL函数是处理和分析数据的强大工具
|
1月前
|
SQL 监控 Oracle
Oracle SQL性能优化全面指南
在数据库管理领域,Oracle SQL性能优化是确保数据库高效运行和数据查询速度的关键
|
1月前
|
SQL 数据库 索引
SQL中COUNT函数结合条件使用的技巧与方法
在SQL查询中,COUNT函数是一个非常常用的聚合函数,用于计算表中满足特定条件的记录数
|
1月前
|
SQL 存储 关系型数据库
SQL判断CHAR类型字段不为空的方法与技巧
在SQL查询中,判断一个CHAR类型字段是否不为空是一个常见的需求
|
1月前
|
SQL Oracle 关系型数据库
SQL如何添加字段记录:详细步骤与技巧
在数据库管理中,经常需要向已有的表中添加新的字段(列)或向表中插入新的记录
|
1月前
|
SQL 关系型数据库 MySQL
SQL日期函数
SQL日期函数
|
Oracle 关系型数据库 数据库
ORACLE clob字段整理
一、CLOB字段的业务说明:CLOB为字符LOB,是LOB 的一种。这种类型用于存储大量的文本信息,如XML 或者只是纯文本。这个数据类型需要进行字符集转换,也就是说,在获取时,这个字段中的字符会从数据库的字符集转换为客户的字符集,而在修改时会从客户的字符集转换为数据库的字符集。
1482 0