SQL查询调试:含Manager_ID的银行员工信息排序查询问题
问题解决:筛选有Manager_ID的银行员工并正确排序
原SQL存在的问题
- 语法错误:
WHERE子句末尾多余的AND,会导致SQL解析失败 - 逻辑错误:
MANAGER_ID IN (MANAGER_ID)无法筛选出拥有有效Manager_ID的员工,这个条件没有实际过滤作用,正确的筛选逻辑应该是判断字段非空 - 排序顺序错误:需求要求按
DESIGNATION降序、EMP_NAME升序排序,原语句的排序顺序颠倒了
修正后的SQL语句
SELECT DESIGNATION, BANK_EMP_ID, EMP_NAME, EMP_SEX FROM BANK_EMPLOYEE WHERE MANAGER_ID IS NOT NULL ORDER BY DESIGNATION DESC, EMP_NAME ASC;
修正说明
- 用
MANAGER_ID IS NOT NULL精准筛选出存在上级经理(即拥有有效Manager_ID)的员工 - 移除
WHERE子句末尾多余的AND,修复语法问题 - 调整
ORDER BY的顺序,先按DESIGNATION降序排列,再按EMP_NAME升序排列,完全匹配需求
内容的提问来源于stack exchange,提问作者Abbas Hussain
相关产品推荐
相关产品推荐

