首页 > 数据库 >【Oracle】当条件中存在空值时,同时将空值和非空值的结果查询出来

【Oracle】当条件中存在空值时,同时将空值和非空值的结果查询出来

时间:2023-07-06 11:45:34浏览次数:32  
标签:AA code inv 查询 空值 select Oracle ttt20230705

【Oracle】当条件中存在空值时,同时将空值和非空值的结果查询出来

如果不是一定要用这个存在空值的条件的话,最好还是不用为好,省的麻烦

正常的查询结果如下

select * from ttt20230705 t where t.code = 'AA'

image

如果一个表的查询条件中数据为空的时候,是不会查询出来这条空值相关的数据

select * from ttt20230705 t where t.code = 'AA' and t.inv = t.inv

image

那么我们可以通过对语句进行处理来让查询语句同时将空值和非空值的结果都查询出来

1、union all

直接将空值和非空值union在一起

select * from ttt20230705 t where t.inv is null and t.code = 'AA'
union all
select * from ttt20230705 t where t.inv is not null and t.code = 'AA'

2、使用nvl作为条件

使用nvl,当条件为空的时候,赋予一个值,两边同时都增加nvl,这样当为空的时候,也会成立

select * from ttt20230705 t where t.code = 'AA' and nvl(t.inv,'999') = nvl(t.inv,'999')

3、使用or作为条件

用or将空与非空的情况拼起来

select * from ttt20230705 t where ((t.code = 'AA' and t.inv is null) or (t.code = 'AA' and t.inv is not null))

4、使用decode作为条件

和nvl一样,在空的时候赋予一个值,当都为空的时候也会成立

select * from ttt20230705 t where t.code = 'AA' and decode(t.inv,'',0,1) = decode(t.inv,'',0,1)

标签:AA,code,inv,查询,空值,select,Oracle,ttt20230705
From: https://www.cnblogs.com/jokingremarks/p/17531744.html

相关文章

  • Oracle Database JDBC driver and Companion Jars Downloads
    https://www.oracle.com/database/technologies/appdev/jdbc-downloads.htmlOracleDatabaseJDBCdriverandCompanionJarsDownloadsGovernedbytheNo-clickthrough FDHUTlicenseOracleJDBCDriversfromMavenCentralRepositoryGetallnewandolderversio......
  • MySQL各指标监控查询
    对于当前数据库的监控方式有很多,分为数据库自带、商用、开源三大类,每一种都有各自的特色;而对于mysql数据库由于其有很高的社区活跃度,监控方式更是多种多样,不管哪种监控方式最核心的就是监控数据,获取得到全面的监控数据后就是灵活的展示部分。那我们今天就介绍一下完全采用mysql......
  • es笔记三之term,match,match_phrase 等查询方法介绍
    本文首发于公众号:Hunter后端原文链接:es笔记三之term,match,match_phrase等查询方法介绍首先介绍一下在es里有两种存储字符串的字段类型,一个是keyword,一个是text。keyword在存储数据的时候是作为一个整体存储的,不会对其进行分词处理text存储数据的时候会对字符串进行分......
  • oracle的tnsname.ora(网络服务名配置文件)
    #tnsnames.oraNetworkConfigurationFile:E:\oracle\oracleBaseMenu\oracleMainMenu\network\admin\tnsnames.ora#GeneratedbyOracleconfigurationtools.#sqlplususername/password@service_name普通用户登录#sqlplususername/password@service_nameassys......
  • Oracle update和 for update的区别
    两者都可以对数据进行修改,不同点:update一般使用的是 update.....set....语句,这样看不到数据的详细信息。而for update一般使用的是select *from....for update。这样的话,是查询了数据的详细信息,然后附带查询功能。比如select*frommytablewheremycolumn=......
  • 条件查询-后台
             ......
  • 用户列表查询对接后端
    1.找到与后端对接的接口文件现在是每一个方法做一个导出,我们希望每个文件做一个导出。default可以在里面定义多个方法在user.vue引入它我们希望页面一加载就调用一次,写一个构造函数,在构造函数中发起调用created()调用getUserList(),而getUserList()调用刚刚定义的use......
  • 分页查询-前端
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><style>.el-table.warning-row{background:oldlace;}.el-......
  • 分页查询-后台
         ......
  • 分页查询-分析
        packagecom.itheima.pojo;importjava.util.List;//分页查询JavaBean//<T>为了更好的契合各种各样的查询<Brand>/<User>publicclassPageBean<T>{//总记录数privateinttotalCount;//当前页数据privateList<T>row......