0

我需要帮助来编写一个 Oracle SQL 查询,详细信息如下:

我有一个表offender_gang_affiliations,其中包含两个不同的列,名为offender_iddept_dvsn_code

我想要一个所有罪犯 id 的列表,其中表中的行具有dept_dvsn_code“A”和dept_dvsn_code“J”。我尝试过应用各种条件ANDOR但我无法想出任何有效的方法。

4

1 回答 1

3

听起来你想要类似的东西

SELECT offender_id
  FROM offender_gang_affiliations
 WHERE dept_dvsn_code IN ('A','J')
 GROUP BY offender_id
HAVING COUNT(DISTINCT dept_dvsn_code) = 2

制定查询的另一种方法是

SELECT offender_id
  FROM offender_gang_affiliations
 WHERE dept_dvsn_code = 'A'
INTERSECT
SELECT offender_id
  FROM offender_gang_affiliations
 WHERE dept_dvsn_code = 'J'

一般来说,我希望第一个选项更有效。根据开发人员的不同,第二个选项最终可能会更清晰。

于 2013-02-21T20:04:22.290 回答