我正试图通过两列之间的比较来筛选表。例如,想象一下表Student的列TestPassed和表Course的测试要求。
给出以下观点:
id.Course id.Student Course.TestRequired Student.TestPassed
1 66 True True
2 66 False True
...
99 52 True False
100 32 False False
我想通过在条件和学生的数据之间执行NOT(XOR(来过滤这样一个表(即同时为true和false(。结果是:
id.Course id.Student Course.TestRequired Student.TestPassed
1 66 True True
2 52 False True
69 32 False False
这在SQL中可能吗?我做了这样的事。但是如何将其扩展到一般逻辑表达式呢?
SELECT "IdCourse", "IdStudent", "TestRequired", "TestPassed" ,
CASE WHEN "TestRequired" = "TestPassed" THEN 'YES'
ELSE 'NO'
END AS Results
FROM "Filter_Partecipant_Course_byTestRequired"
如果只想选择不同的结果,可以用WHERE子句来完成:
Select IdCourse, IdStudent, TestRequired, TestPassed
FROM Filter_Partecipant_Course_byTestRequired
WHERE TestRequired <> TestPassed
这样,如果其中一个值为true,那么另一个值必须为false才能返回