Sql CTE 递归

--有几点需要注意的地方 --1.lmenu(menuname,id,pid,orderIndex) 递归的参数必须和select后面的字段相同并且类型相同 --2.必须有根节点,比如:SELECT menuname,id,pid,orderIndex FROM MenuList WHERE Pid=0 --3.根节点下面的语句成为循环体,根结点和循环体必须使用 union all 连接 --4.循环体后面还可以追加 语句,使用union all连接 WITH lmenu(menuname,id,pid,orderIndex) as ( SELECT menuname,id,pid,orderIndex FROM MenuList WHERE Pid=0 UNION all SELECT a.menuname,a.id,a.pid,a.orderIndex FROM MenuList A,lmenu b where a.pid = b.id ) SELECT * from lmenu order by orderIndex
浙公网安备 33010602011771号