日期:2014-05-17  浏览次数:20572 次

sql数据库WITH AS的用法
希望大虾给我解释下下面这段代码,越详细越好,最好将这段代码的运行步骤说明下。我第一次用这个语法......下面代码中temptab有什么作用,代码中temptab和物料表关联,那么temptab中保存的是什么数据?非常感谢。。。

WITH temptab(子节点, 父节点) 
AS (SELECT a.子节点, a.父节点 
FROM 物料表 a WHERE 子节点='XXXX' 
UNION ALL SELECT b.子节点, b.父节点 
FROM 物料表 b, temptab c WHERE b.父节点 = 
c.子节点) select *
 from 物料表 where 子节点 in (select 子节点 
from temptab)
WIth?爱上 WITH?AS SQL遍历

------解决方案--------------------
google cte递归
------解决方案--------------------
with as 公用表表达式,作用类似派生表,临时视图
temptab就是派生表的表名

自2005新增递归语句,需要用cte表达式完成

temptab表内容是子节点='xxx'及以'xxx'作为父节点下面的全部子节点