如何用SQL存储过程获取员工表中经理ID与自身员工ID相同的经理姓名?
用SQL存储过程获取经理ID等于自身员工ID的经理姓名
假设你的员工表名为Employees,包含核心字段:EmployeeID(员工唯一ID)、ManagerID(对应经理的ID)、EmployeeName(员工/经理姓名)。以下是实现需求的存储过程方案:
SQL Server 版本
创建存储过程
CREATE PROCEDURE GetSelfManagedManagers AS BEGIN SET NOCOUNT ON; -- 屏蔽计数提示,只返回目标结果集 SELECT EmployeeName AS ManagerName FROM Employees WHERE ManagerID = EmployeeID; END
调用存储过程
EXEC GetSelfManagedManagers;
MySQL 版本
创建存储过程
DELIMITER // CREATE PROCEDURE GetSelfManagedManagers() BEGIN SELECT EmployeeName AS ManagerName FROM Employees WHERE ManagerID = EmployeeID; END // DELIMITER ;
调用存储过程
CALL GetSelfManagedManagers();
逻辑说明
这个存储过程直接通过WHERE ManagerID = EmployeeID筛选出自己管理自己的员工(即经理),返回他们的姓名作为结果。相比INNER JOIN的写法,存储过程可以把这个查询逻辑封装起来,方便重复调用,也便于后续维护修改。
内容的提问来源于stack exchange,提问作者Muthupradeepa
相关产品推荐
相关产品推荐

