You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle查询:基于SCODE列获取STYPE列中同时匹配多值的去重公共值

解答:仅用Oracle SQL即可实现需求

完全不需要编写额外的Java代码,直接通过Oracle SQL查询就能精准找出你需要的结果。下面给你两种常用的实现思路:

方法一:分组统计过滤

这种方法通过分组STYPE,统计关联的不同SCODE数量,筛选出恰好关联9531和9569的记录:

SELECT DISTINCT STYPE
FROM your_table_name
WHERE SCODE IN ('9531', '9569')
GROUP BY STYPE
HAVING COUNT(DISTINCT SCODE) = 2;

思路解释:

  • 先用WHERE子句过滤出SCODE是9531或9569的记录,缩小查询范围
  • 按STYPE分组后,用COUNT(DISTINCT SCODE)统计每个STYPE关联的不同SCODE数量
  • 只有数量等于2的STYPE,才说明同时关联了9531和9569这两个值

方法二:使用交集(INTERSECT)

通过两次查询分别找出关联9531和9569的STYPE,再取交集:

SELECT STYPE
FROM your_table_name
WHERE SCODE = '9531'
INTERSECT
SELECT STYPE
FROM your_table_name
WHERE SCODE = '9569';

思路解释:

  • 第一个查询获取所有关联SCODE=9531的STYPE
  • 第二个查询获取所有关联SCODE=9569的STYPE
  • INTERSECT操作会自动返回两个结果集的公共部分,并且天然去重,不需要额外加DISTINCT

两种方法都能高效满足你的需求,你可以根据自己的习惯和表数据量选择合适的方式。

内容的提问来源于stack exchange,提问作者Naveen Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 11:02:44