Postgres - 选择逻辑

时间:2017-11-09 15:38:20

标签: sql postgresql

我在表A中有以下数据。

team | name | status | start_date | end_date
----------------------------------------------
A      Ann    Active  2016-01-01   2016-06-01
A      Linh   Active  2016-01-01   2016-06-01
A      John   Hold    2016-01-01   2016-06-01
A      Soph   Closed  2016-01-01   2016-06-01

我可以select from table A where status='Active'来获取活跃会员。

现在,要求已更改为如果至少有一个“Active”状态成员,我应该在查询中查找“Active”和“Hold”状态成员。

如果没有“活动”状态成员,那么我不应该寻找“保持”状态成员。

我应该如何在一个SQL中编写?

1 个答案:

答案 0 :(得分:1)

据我了解您的要求,此查询正在运行:

SELECT *
  FROM tableA
 WHERE status IN ('Active', 'Hold')
   AND EXISTS (SELECT true FROM tableA WHERE status = 'Active');

希望得到这个帮助。