如何仅查询讲师列表?SQL语句返回全部门数据问题求助
解决方法
你的问题出在没有用WHERE子句过滤行,当前代码只是通过CASE语句给符合条件的行添加标记,但不会剔除其他部门的记录,所以会返回所有数据。
要只查询讲师列表,直接在SQL末尾加上WHERE条件过滤部门即可:
场景1:只保留薪资≥50000的讲师
select first_name, salary, dept, 'Lecturers' as "Lecturer List" from friend where dept = 'Lecturer' and salary >= 50000;
这里因为已经通过WHERE筛选了讲师且薪资达标,所以"Lecturer List"列可以直接固定为'Lecturers',不需要CASE判断。
场景2:保留所有讲师,按薪资区分标记
如果想展示所有讲师,同时用CASE标记薪资是否达标,可以这样写:
select first_name, salary, dept, case when salary >= 50000 then '高薪讲师' else '普通讲师' end as "Lecturer List" from friend where dept = 'Lecturer';
此时WHERE子句确保只返回讲师部门的记录,CASE仅用来区分薪资等级。
内容的提问来源于stack exchange,提问作者Shakib
相关产品推荐
相关产品推荐

