sql - 如何从具有跨同一列的多行的条件的单个表中进行选择

标签 sql oracle

我有一个表格,其中包含医疗编号和程序的列。行数多,医号可重复,程序多;例如:

Mid_no    procedure
--------------------
100.          20
100.          30
200.          30

我想选择所有具有过程 30 而没有过程 20 的 mid_no。在上面的示例中,所需的结果将是:

Mid_no.    Procedure
---------------------
200.        30

最佳答案

SELECT t.mid_no,
  t.procedure
FROM TABLE t
WHERE NOT EXISTS
  (SELECT 1 FROM TABLE t1 WHERE t1.mid_no = t.mid_no AND t1.procedure = 20
  )
AND t.procedure = 30;

关于sql - 如何从具有跨同一列的多行的条件的单个表中进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41349728/

相关文章:

sql - 有没有办法通过 IN 列表中的值来限制查询结果?

mysql - 结果按一列分组,并根据第二列的最大值显示不同的行

sql - 复制sql表的最快方法

sql - Oracle SQL 中的 For 循环

sql - Oracle:将子查询中的多个结果合并为一个逗号分隔的值

oracle - 如何找出外键引用了哪个表?

c# - 如何将数据集转换为数据表

java - 使用 Java 连接到 Oracle 集群

java - 使用 PDB 的 Oracle Dataguard 上的 DB 的 Weblogic 数据源配置

MySQL - 在自定义列上创建搜索