您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Sqlserver

bubuko 2022/1/25 18:58:44 sqlserver 字数 1413 阅读 915 来源 http://www.bubuko.com/infolist-5-1.html

递归 往上 Create FUNCTION [dbo].[fnGetCategoryPath_Parent](@id VARCHAR(36)) RETURNS VARCHAR(1000) AS BEGIN DECLARE @re VARCHAR(1000); WITH categoryTemp -- ...

递归 往上

Create FUNCTION [dbo].[fnGetCategoryPath_Parent](@id VARCHAR(36))
RETURNS VARCHAR(1000)
AS 
BEGIN
DECLARE @re VARCHAR(1000);
	WITH categoryTemp   --递归
     AS (SELECT CategoryName,Id,ParentId,1 romnum FROM category
         WHERE  Id = @id   --查询当前部门
         UNION ALL
         SELECT B.CategoryName,B.Id,B.ParentId,A.romnum+1 romnum 
         FROM   categoryTemp A
                INNER JOIN category B
                        ON B.Id = A.ParentId)
   SELECT @re= (SELECT ‘\‘+ CategoryName
	FROM categoryTemp ORDER BY romnum DESC FOR XML PATH(‘‘)) --获取递归后的集合

	RETURN @re
END
GO

eg:

SELECT c1.CategoryId 类目ID,c1.CategoryName 类目名称,
dbo.fnGetCategoryPath_Parent(c1.Id) 类目路径
FROM dbo.category c1 WHERE c1.ParentId IS NOT NULL AND c1.ParentId<>‘‘ AND  NOT EXISTS(SELECT 1 FROM dbo.category temp WHERE temp.ParentId=c1.Id)

技术分享图片

 

 

  

Sqlserver

原文:https://www.cnblogs.com/kongxp/p/15093262.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶