SQL中字段跟子查询结果判等,子查询结果为null的处理办法

简介: 前言:今天写功能的时候遇到一个问题,SQL中字段跟子查询结果判等,子查询结果为null,查询不到数据

前言:今天写功能的时候遇到一个问题,SQL中字段跟子查询结果判等,子查询结果为null,查询不到数据


平时我们写字段跟null比较都会写is null 和is not null


比如


select * from table where name is not null

但是遇到跟子查询比较,子查询结果可能为null怎么办


我这里提供一种解决办法,就是使用case分支语句判断一下


比如我这里查询跟id为7的记录在同一级目录下所有记录的ID和sort值


select regionid id, sort
from SYS_REGION
where case
          when (select PARENTREGIONID from SYS_REGION where regionid = '7') is null then PARENTREGIONID is null
          else
                  PARENTREGIONID = (select PARENTREGIONID from SYS_REGION where regionid = '7')
    end

如果是null就写is null


如果不是null就写等于


ps:我这里用的是人大金仓数据库,语法跟其他库大同小异


如果还有其他更好的处理方法,欢迎讨论


相关文章
|
30天前
|
Java 数据库连接 mybatis
mybatis plus字段为null或空字符串把原来的数据也更新了,只需要注解
mybatis plus字段为null或空字符串把原来的数据也更新了,只需要注解
22 0
|
30天前
|
SQL
SQL语句两个字段或多个字段同时order by 排序
SQL语句两个字段或多个字段同时order by 排序
29 0
|
2月前
|
SQL Java 关系型数据库
JDBC PreparedStatement 字段值为null导致TBase带宽飙升的案例分析
JDBC PreparedStatement 字段值为null导致TBase带宽飙升的案例分析
49 0
|
2月前
|
SQL JSON 关系型数据库
sql如何获取字段里的json值
sql如何获取字段里的json值
|
2月前
|
SQL
Sql语法:字段不为空
Sql语法:字段不为空
|
3月前
|
SQL Oracle 关系型数据库
七、SQL子查询
七、SQL子查询
32 0
|
3月前
|
SQL Oracle 关系型数据库
sql语句两个字段合并或者两个字段拼接显示
sql语句两个字段合并或者两个字段拼接显示
|
4月前
|
SQL 关系型数据库 PostgreSQL
PostgreSQL【SQL 01】根据条件更新字段值或追加信息STRPOS(string, substring)函数使用及LIKE函数对比
PostgreSQL【SQL 01】根据条件更新字段值或追加信息STRPOS(string, substring)函数使用及LIKE函数对比
59 0
|
4月前
|
SQL 关系型数据库 MySQL
SQL编程【MySQL 01】拆分列字段为行并根据类型翻译字段 > 1305 - FUNCTION x.help_topic_id does not exist 报错问题
SQL编程【MySQL 01】拆分列字段为行并根据类型翻译字段 > 1305 - FUNCTION x.help_topic_id does not exist 报错问题
36 0
|
4月前
|
SQL Oracle 关系型数据库
Greenplum【SQL 01】通过 timestamp 类型字段值实现数据的日期时段筛选+时间时段筛选(跨天时段及不跨天时段SQL详情)
Greenplum【SQL 01】通过 timestamp 类型字段值实现数据的日期时段筛选+时间时段筛选(跨天时段及不跨天时段SQL详情)
41 0