求可查询EMPNO、ENAME、JOB及经理姓名ASSIGNED_MANAGER的SQL代码
实现思路
这个需求可以通过员工表的自连接实现,核心逻辑是把存储经理编号的ASSIGNED_MANAGER字段和员工表自身的员工编号EMPNO关联,拿到对应经理的姓名。我们默认你的表名为emp,如果实际表名不同替换即可。
参考查询代码
SELECT e.EMPNO, e.ENAME, e.JOB, COALESCE(m.ENAME, '-----') AS ASSIGNED_MANAGER FROM emp e LEFT JOIN emp m ON e.ASSIGNED_MANAGER = m.EMPNO;
说明
- 使用
LEFT JOIN而非内连接,是为了保留没有上级的最高级员工(示例中的KING)的记录 COALESCE函数用于将没有匹配到经理的空值替换为示例中的-----,不同数据库可以替换为对应方言函数:MySQL用IFNULL、Oracle用NVL效果完全一致- 查询结果完全匹配你给出的样例格式,
ASSIGNED_MANAGER字段会直接展示经理姓名而非编号
内容的提问来源于stack exchange,提问作者BABU
相关产品推荐
相关产品推荐

