sql的where条件中使用case when

场景:

1、使用oracle数据库,数据类型为number,需要正无穷值。

2、数据表中有两个金额值,最大值和最小值, 如10~20, 30 ~40,40以上,数据库中这样设计

id name min max

1 j 10 20

2 v 30 40

3 a 40


问题描述

当金额为参数,通过 金额 > min and 金额 <=最大值 作为sql条件,因为oracle中没有正无穷表示,所以用空来表示无穷大。这样就存在 sql:金额 <= null 的情况。


解决方案:

我们在where条件的后边使用case进行判断

sql 复制代码
select * from t 
where (case when max is not null and monry > min
                 and monry <= max 
              then 1
            when max is null and monry > min
              then 1
           else 0
       end) = 1;
相关推荐
2301_781571422 分钟前
Go语言如何用sqlx_Go语言sqlx数据库操作教程【入门】
jvm·数据库·python
2401_880071403 分钟前
mysql安装后如何进行初始化安全配置_mysql_secure_installation实操
jvm·数据库·python
m0_609160495 分钟前
如何创建物化视图日志_CREATE MATERIALIZED VIEW LOG记录基表DML变更.txt
jvm·数据库·python
神明9315 分钟前
如何利用 Service Worker 实现离线缓存?Vue 项目 PWA 入门实战教程
jvm·数据库·python
C137的本贾尼6 分钟前
查询进阶:排序、过滤与分页
数据库·mysql
2301_7815714211 分钟前
c++怎么在写入文本文件时自动将所有的制表符统一转换为四格空格【实战】
jvm·数据库·python
iuvtsrt12 分钟前
如何在 Go 中为权威 DNS 服务器实现持久化 DNS 记录存储
jvm·数据库·python
2301_8125396714 分钟前
Redis怎样在Spring中执行批量Pipeline指令
jvm·数据库·python
lifewange15 分钟前
HBase 增删改查(CRUD)完整操作指南
数据库·python·hbase
woxihuan12345616 分钟前
Redis怎样定位每秒被高频访问的热点键
jvm·数据库·python