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


目录
相关文章
|
6月前
|
SQL 索引
【YashanDB知识库】字段加上索引后,SQL查询不到结果
【YashanDB知识库】字段加上索引后,SQL查询不到结果
|
5月前
|
SQL Oracle 关系型数据库
解决大小写、保留字与特殊字符问题!Oracle双引号在SQL中的特殊应用
在Oracle数据库开发中,双引号的使用是一个重要但易被忽视的细节。本文全面解析了双引号在SQL中的特殊应用场景,包括解决标识符与保留字冲突、强制保留大小写、支持特殊字符和数字开头标识符等。同时提供了最佳实践建议,帮助开发者规避常见错误,提高代码可维护性和效率。
195 6
|
6月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
|
6月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】yashandb执行包含带oracle dblink表的sql时性能差
【YashanDB知识库】yashandb执行包含带oracle dblink表的sql时性能差
|
6月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
本文来自YashanDB官网,介绍如何处理Oracle客户端sql*plus中使用@@调用同级目录SQL脚本的场景。崖山数据库23.2.x.100已支持@@用法,但旧版本可通过Python脚本批量重写SQL文件,将@@替换为绝对路径。文章通过Oracle示例展示了具体用法,并提供Python脚本实现自动化处理,最后调整批处理脚本以适配YashanDB运行环境。
|
8月前
|
SQL Oracle 关系型数据库
如何在 Oracle 中配置和使用 SQL Profiles 来优化查询性能?
在 Oracle 数据库中,SQL Profiles 是优化查询性能的工具,通过提供额外统计信息帮助生成更有效的执行计划。配置和使用步骤包括:1. 启用自动 SQL 调优;2. 手动创建 SQL Profile,涉及收集、执行调优任务、查看报告及应用建议;3. 验证效果;4. 使用 `DBA_SQL_PROFILES` 视图管理 Profile。
|
SQL 存储 数据库
SQL Server函数与存储过程 计算时间
SQL Server函数与存储过程 计算时间 一、通过一个开始时间、结束时间计算出一个工作日天数(不包含工作日与节假日);   1、函数 --创建函数,参数 @bengrq 开始时间,@endrq 结束时间 create function [dbo].
1883 0
|
SQL 存储 Perl
PL/SQL函数和存储过程
前言 活到老,学到老。 基本概念 --ORACLE 提供可以把PL/SQL 程序存储在数据库中,并可以在任何地方来运行它。这样就叫存储过程或函数。过程和函数统称为PL/SQL子程序,他们是被命名的PL/SQL块,均存储在数据库中,并通过输入、输出参数或输入/输出参数与其调用者交换信息。
1507 0

热门文章

最新文章

推荐镜像

更多