SQL组包含相同的列数据,但有一个字段除外,如果为“是”,则返回null

SQL组包含相同的列数据,但有一个字段除外,如果为“是”,则返回null,sql,oracle,Sql,Oracle,例如: 我想写一个oracle查询,在这里我可以检查同一部门中是否有人具有相同的技能。因此,department=1,sql=Y,jquery=Y。但是,必须至少有一个人处于活动状态='Y'。我想写一个返回1(为true)的查询,因为尽管Jame的active列为null,但至少有一个人(John)拥有所有技能并处于活动状态 预期结果:1 SELECT 1 FROM test_table WHERE department = 1 AND sql = 'Y' AND Jquery = 'Y'

例如:

我想写一个oracle查询,在这里我可以检查同一部门中是否有人具有相同的技能。因此,department=1,sql=Y,jquery=Y。但是,必须至少有一个人处于活动状态='Y'。我想写一个返回1(为true)的查询,因为尽管Jame的active列为null,但至少有一个人(John)拥有所有技能并处于活动状态

预期结果:1

SELECT 1 FROM test_table WHERE department = 1 AND sql = 'Y' AND Jquery = 'Y'

您可以通过表的自联接获得想要的结果,在表中查找两个具有相同技能集的不同人员,并检查其中一人是否处于活动状态:

SELECT Department
FROM skills s1
JOIN skills s2 ON s2.Name < s1.Name AND s2.SQL = s1.SQL AND s2.JQuery = s1.JQuery
WHERE s1.Active = 'Y' OR s2.Active = 'Y'
在这两种情况下,示例数据的输出为:

DEPARTMENT
1

您可以通过表的自联接获得想要的结果,在表中查找两个具有相同技能集的不同人员,并检查其中一人是否处于活动状态:

SELECT Department
FROM skills s1
JOIN skills s2 ON s2.Name < s1.Name AND s2.SQL = s1.SQL AND s2.JQuery = s1.JQuery
WHERE s1.Active = 'Y' OR s2.Active = 'Y'
在这两种情况下,示例数据的输出为:

DEPARTMENT
1

编辑问题并添加预期结果。编辑问题并添加预期结果。正在工作!谢谢大家!@JL8无需担心-我很高兴能提供帮助。如果这确实回答了你的问题,请考虑标记答案接受(在下/下投票箭头下的复选标记)。看,工作!谢谢大家!@JL8无需担心-我很高兴能提供帮助。如果这确实回答了你的问题,请考虑标记答案接受(在下/下投票箭头下的复选标记)。看到和