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;
相关推荐
NCIN EXPE15 小时前
redis 使用
数据库·redis·缓存
MongoDB 数据平台15 小时前
为编码代理引入 MongoDB 代理技能和插件
数据库·mongodb
极客on之路15 小时前
mysql explain type 各个字段解释
数据库·mysql
代码雕刻家15 小时前
MySQL与SQL Server的基本指令
数据库·mysql·sqlserver
lThE ANDE15 小时前
开启mysql的binlog日志
数据库·mysql
yejqvow1215 小时前
CSS如何控制placeholder文字的颜色_使用--placeholder伪元素
jvm·数据库·python
oLLI PILO15 小时前
nacos2.3.0 接入pgsql或其他数据库
数据库
m0_7436239215 小时前
HTML怎么创建多语言切换器_HTML语言选择下拉结构【指南】
jvm·数据库·python
pele15 小时前
Angular 表单中基于下拉选择动态启用字段必填校验的完整实现
jvm·数据库·python