我想在where子句中放入一个条件条件,即如果semester column
第二张表为null,则需要过滤where列semester is null
。如果没有,我需要在其他条件下过滤数据。
//如果学期为null,则需要查询如下:
select * from tbl_courses tc
left join tbl_exams te on tc.courseID = te.courseID
where te.gradeID=10 and
te.semester is null
//如果学期不为null,则查询应为
select * from tbl_courses tc
left join tbl_exams te on tc.courseID = te.courseID
where te.gradeID=10 and
te.semester is null
对于此要求,我如何从sql本身编写单个查询,如下所示:
select * from tbl_courses tc
left join tbl_exams te on tc.courseID = te.courseID
where te.gradeID=10 and
(case when te.semester is null
then te.semester is null
else te.semester = tc.semester END)
无论如何这是不对的,请帮帮我
假设您的第二条选择语句应为:
select * from tbl_courses tc
left join tbl_exams te on tc.courseID = te.courseID
where te.gradeID=10
and te.semester = tc.semester
尝试这个:
select *
from tbl_courses tc
left join tbl_exams te on tc.courseID = te.courseID
where te.gradeID=10
and (
te.semester = tc.semester
OR te.semester is null
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句