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

时间:2020-12-04 16:24:39
//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[];