我只需要使用INTERSECT / EXCEPT来选择ID

时间:2015-02-09 04:57:08

标签: mysql sql oracle intercept except

我有一张包含一些数据的表格:

 id     month     price
 100    May       2000
 100    June      3000
 100    July      2500
 192    March     2000
 192    May       2000
 101    May       2000
 101    June      3000
 100    August    3100

我需要通过仅使用INTERCEPT来获取ID。

1)如果“id”有月“May”和价格“2000”,并且相同的“id”也有月“June”和价格“3000”。 示例:100,101具有“May = 2000”和“June = 3000”

我需要通过仅使用EXCEPT来获取ID。

2)如果“id”有月“May”和价格“2000”,但是同一个“id”没有月份“June”和价格“3000”

示例:192具有“May = 2000”但不具有“June = 3000”

请不要使用IN。

1 个答案:

答案 0 :(得分:0)

是的,您完全正确,将列名[月]更改为其他名称[月],然后您将按预期获得结果。

select id from table_name where months='May' and price='2000'
INTERSECT
select id from table_name where months='June' and price='3000'

select id from table_name where months='May' and price='2000'
EXCEPT
select id from table_name where months='June' and price='3000'