首页 > 代码库 > SQL 递归使用
SQL 递归使用
直接贴代码吧= =
WITH CTE AS ( -->Begin 一个定位点成员 SELECT COUNTRYORDERID,HSNAME, COUNTRYNAME,PARENTORDERID, IMPORTCURRENTSUMAMOUNT, IMPORTCONTRASTSUMAMOUNTPERCENTAGE, IMPORTCURRENTSUMAMOUNTPERCENTAGE, CAST(COUNTRYNAME AS NVARCHAR(max)) AS TE,0 AS Levle FROM #TempTableDetail WHERE PARENTORDERID IS NULL AND HSNAME IN (SELECT HSNAME FROM #TempTableData) -->End UNION ALL -->Begin一个递归成员 SELECT #TempTableDetail.COUNTRYORDERID, #TempTableDetail.HSNAME, #TempTableDetail.COUNTRYNAME,#TempTableDetail.PARENTORDERID, #TempTableDetail.IMPORTCURRENTSUMAMOUNT, #TempTableDetail.IMPORTCONTRASTSUMAMOUNTPERCENTAGE, #TempTableDetail.IMPORTCURRENTSUMAMOUNTPERCENTAGE, CAST(REPLICATE(‘ ‘,LEN(CTE.TE))+#TempTableDetail.COUNTRYNAME AS NVARCHAR(MAX)) AS TE,Levle+1 AS Levle FROM #TempTableDetail INNER JOIN CTE ON #TempTableDetail.PARENTORDERID=CTE.COUNTRYORDERID --group by #TempTableDetail.HSNAME WHERE #TempTableDetail.HSNAME IN (SELECT HSNAME FROM #TempTableData) -->End ) INSERT INTO #TempResult(COUNTRYORDERID,HSNAME,COUNTRYNAME,IMPORTCONTRASTSUMAMOUNTPERCENTAGE,IMPORTCURRENTSUMAMOUNTPERCENTAGE,IMPORTCURRENTSUMAMOUNT) SELECT DISTINCT COUNTRYORDERID, HSNAME,TE,IMPORTCONTRASTSUMAMOUNTPERCENTAGE, IMPORTCURRENTSUMAMOUNTPERCENTAGE,IMPORTCURRENTSUMAMOUNT FROM CTE ORDER BY HSNAME,COUNTRYORDERID;
效果:
SQL 递归使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。