问题描述
我正在尝试通过两列之间的比较来过滤表格。 例如,想象一下包含 TestPassed 列的 Student 表和包含测试要求的 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) 来过滤这样的表(即,既为真又为假)。结果将是:
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
这样,如果其中一个值为真,则另一个必须为假才能返回