SQL 实现地区的实现树形结构递归查询(无限级分类),level为节点层级,由小至大依次

时间:2023-01-02 00:26:15
//SQL 实现地区的实现树形结构递归查询(无限级分类),level为节点层级,由小至大依次  2018-09-25
                    StringBuilder areaSQL = new StringBuilder();
                    areaSQL.AppendLine(" with cte_child(id,areaName,pid,level) as ( select id,areaName,pid,0 as level from erp_area ");
                    areaSQL.AppendLine(" where pid = 0 "); //优先列出第一节点 id = 1 指定中国
                    areaSQL.AppendLine(" union all  ");   //递归条件 
                    areaSQL.AppendLine(" select a.id,a.areaName,a.pid,b.level+1  ");
                    areaSQL.AppendLine(" from erp_area a  inner join   cte_child b  on ( a.pid=b.id) ");
                    areaSQL.AppendLine(" ) select  * from cte_child ");
                    DataTable dtArea = sqlhelp.GetDataSet(areaSQL.ToString()).Tables[0];