sql - sql查询基于where子句中的多列组合并处理'IN'或Not In运算符
问题描述
我需要检查表中的 2 列组合是否为表中的唯一列 ID。示例:我有一个表 TABLE A
----------------------------------
ID TYPE VALUE
---------------------------------
1 CUST 1
1 SOLDTO 3
1 SHIPTO 2
2 CUST 1
2 SOLDTO 2
2 SHIPTO 5
3 CUST 1
3 SOLDTO 2
3 SHIPTO 3
----------------------------------
我需要检查条件组合
if ( TYPE = 'CUST' VALUE = 1 )
and ( TYPE = 'SOLDTO' VALUE IN RANGE 2 to 3 )
and (TYPE = 'SHIPTO' VALUE NOT EQ 3)
应该返回条目
2 CUST 1
2 SOLDTO 2
2 SHIPTO 5
请协助。
解决方案
您可以尝试使用存在和不存在
select * from t where exists
( select 1 from t t1 where t1.ID=t.ID
and t1.TYPE in('CUST','SOLDTO')
and t1.VALUE>=1 and t1.VALUE<=3)
and not exists ( select 1 from t t2 where t2.ID=t.ID
and t2.TYPE='SHIPTO' and t2.VALUE!=3)
推荐阅读
- django - Django REST Framework 和 Bootstrap 是否足以构建一个完整的 webapp?
- reactjs - ReactJs - 登录重定向一秒钟,然后返回登录页面
- apache-spark - Hadoop YARN 容器退出/结束时如何运行一些自定义代码?
- python - 找到第 n 个斐波那契数列
- f# - 这条规则永远不会匹配:为什么?
- javascript - 如何处理不抛出 catch 的 API 请求?(403 错误)
- python - 我的一个python文件有一个变量x的增量编号如何导入该变量x并在另一个python文件上运行它所以显示x增加
- java - java.lang.IllegalStateException:找不到类 com.domain.Profile 所需的标识符属性!- Mongo,SpringBoot
- java - recyclerview textview的Android随机颜色
- reactjs - 如何在 React Slick Slider 中的 nextSlide 和 prevSlide 中添加类