我需要帮助来编写Oracle SQL查询,详情如下:
我有一个表offender_gang_affiliations
,其中包含两个名为offender_id
和dept_dvsn_code
的不同列。
我想要一个所有罪犯ID的列表,其中表中有一行dept_dvsn_code
的'A'以及dept_dvsn_code
的'J'。我已尝试应用各种AND
和OR
条件,但我无法提出任何有用的信息。
答案 0 :(得分: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'
一般来说,我希望第一种选择更有效率。根据开发人员的不同,第二种选择可能会更清晰。