欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

获取岗位信息 博客分类: mysql  

程序员文章站 2024-03-15 18:11:12
...
CREATE DEFINER=`root`@`%` FUNCTION `GetPositionInfo`(VPositionId VARCHAR(36)) RETURNS varchar(36) CHARSET utf8
BEGIN
	-- 预期岗位结果 
	DECLARE vResult VARCHAR(36);
	DECLARE vCount INT;
	SET vResult = '00000000-0000-0000-0000-000000000000'; -- 返回结果集
	SET vCount=0;  -- 判断是那一层级
	IF VPositionId <> '00000000-0000-0000-0000-000000000000' THEN
	 
	  loop_label: loop 
         
         SET vResult=(SELECT PositionId 
					  FROM oep.Position 
					  WHERE oep.Position.PositionParentId=VPositionId LIMIT 1);  
         SET vCount=vCount+1;
         
         IF vResult IS NULL  THEN
			IF vCount =1 THEN
				SET vResult= '00000000-0000-0000-0000-000000000000';
            ELSE 
				SET vResult=VPositionId;
            END IF;
         
            
			LEAVE loop_label;
         ELSE
         
			SET VPositionId=vResult;
            
         END IF;
         
     end loop;
      
      
	END IF;
    
	RETURN vResult;
END