我需要帮助来编写一个 Oracle SQL 查询,详细信息如下:
我有一个表offender_gang_affiliations
,其中包含两个不同的列,名为offender_id
和dept_dvsn_code
。
我想要一个所有罪犯 id 的列表,其中表中的行具有dept_dvsn_code
“A”和dept_dvsn_code
“J”。我尝试过应用各种条件AND
,OR
但我无法想出任何有效的方法。
听起来你想要类似的东西
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'
一般来说,我希望第一个选项更有效。根据开发人员的不同,第二个选项最终可能会更清晰。