【问题标题】:I need to select IDs by using only INTERSECT / EXCEPT我只需要使用 INTERSECT / EXCEPT 来选择 ID
【发布时间】:2015-04-08 19:05:53
【问题描述】:

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

 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。

【问题讨论】:

  • 你有什么尝试吗?这不是写我的代码服务吗?
  • 为什么有两个 RDBMS 标签,mysqloracle
  • 除了家庭作业之外还有其他限制原因吗?
  • 是的,我已经尝试过了。但它只是给出检查语法。 @Coder of Code
  • 我想知道@Lalit Kumar 的简单方法

标签: mysql sql oracle intercept except


【解决方案1】:

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

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'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    相关资源
    最近更新 更多