mysql - Oracle 从另一列中选择有或没有值的列条目

标签 mysql oracle

我有一个表,我想获取 s#,其中 s# 有 p1 但没有 p2;


s# P#

s1 p1

s1 p2

s1 p3

s1 p4

s2 p1

s2 p3

s3 p2

s3 p3

我的结果应该是 s2。我尝试返回 s1,s2 的 where 子句和连接,这是错误的。

最佳答案

试试这个:

SELECT s#
  FROM (SELECT s#, SUM(CASE WHEN p# = 'p1' THEN 1 ELSE 0 END) p1ct
                 , SUM(CASE WHEN p# = 'p2' THEN 1 ELSE 0 END) p2ct
          FROM s
         GROUP BY s#)
 WHERE p1ct > 0
   AND p2ct = 0;

关于mysql - Oracle 从另一列中选择有或没有值的列条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14844883/

相关文章:

c - 为什么我的 PRO*C 程序的控制不进入 if 部分?

sql - 使用参数(连接字符串、用户、密码...)从命令行打开 SQL Developer

sql - Oracle和sql server分页以及通用分页方法

Mysql和日期函数,它是否对每一行进行处理?

mysql - sql查询相同id但不同值的总和?

mysql - 如何在一个 MySQL 查询中进行 2 次更新

sql - 在 pivot xml 之后将 xmltype 解析为表

sql - Oracle:在包和过程中设置 session 参数

mysql - 如何在 MySql 表中存储 MS Sql Server 唯一标识符

php - 如何修复mysql从till到日期和时间的读取?