SQL |如果行不存在,如何显示 "NA",没有 switch case
SQL | How to display "NA" if row doesn't exists, without switch case
我有两个table,
Table 1:
studentId
department
S01
Mech
S02
Mech
S03
CSE
Table 2:
studentId
Result
S01
Pass
S03
Fail
我想显示:studentId,机械系的结果,对于那些没有给出结果的学生 table 2,结果应该显示“缺席”。
期望的输出,
studentId
Result
S01
Pass
S02
Absent
不使用 switch case 怎么办? (仅使用:连接、子查询、函数、分组依据、具有、位置等)(即仅基础知识)
使用,SQL(甲骨文)
我尝试了太多,但无法为“S02”显示“缺席”
在两个 table 之间使用左连接,连同 COALESCE
将 Absent
呈现为第二个 table 中缺失的任何机械学生的结果。
SELECT t1.studentId, COALESCE(t2.Result, 'Absent') AS Result
FROM Table1 t1
LEFT JOIN Table2 t2
ON t2.studentId = t1.studentId
WHERE t1.department = 'Mech';
我有两个table,
Table 1:
studentId | department |
---|---|
S01 | Mech |
S02 | Mech |
S03 | CSE |
Table 2:
studentId | Result |
---|---|
S01 | Pass |
S03 | Fail |
我想显示:studentId,机械系的结果,对于那些没有给出结果的学生 table 2,结果应该显示“缺席”。
期望的输出,
studentId | Result |
---|---|
S01 | Pass |
S02 | Absent |
不使用 switch case 怎么办? (仅使用:连接、子查询、函数、分组依据、具有、位置等)(即仅基础知识)
使用,SQL(甲骨文)
我尝试了太多,但无法为“S02”显示“缺席”
在两个 table 之间使用左连接,连同 COALESCE
将 Absent
呈现为第二个 table 中缺失的任何机械学生的结果。
SELECT t1.studentId, COALESCE(t2.Result, 'Absent') AS Result
FROM Table1 t1
LEFT JOIN Table2 t2
ON t2.studentId = t1.studentId
WHERE t1.department = 'Mech';