查找指定节点的所有子节点的示例函数.sql
2012-05-30 21:29
218 查看
--测试数据
CREATE TABLE tb(ID char(3),PID char(3),Name nvarchar(10))
INSERT tb SELECT '001',NULL ,'山东省'
UNION ALL SELECT '002','001','烟台市'
UNION ALL SELECT '004','002','招远市'
UNION ALL SELECT '003','001','青岛市'
UNION ALL SELECT '005',NULL ,'四会市'
UNION ALL SELECT '006','005','清远市'
UNION ALL SELECT '007','006','小分市'
GO
--查询指定节点及其所有子节点的函数
CREATE FUNCTION f_Cid(@ID char(3))
RETURNS @t_Level TABLE(ID char(3),Level int)
AS
BEGIN
DECLARE @Level int
SET @Level=1
INSERT @t_Level SELECT @ID,@Level
WHILE @@ROWCOUNT>0
BEGIN
SET @Level=@Level+1
INSERT @t_Level SELECT a.ID,@Level
FROM tb a,@t_Level b
WHERE a.PID=b.ID
AND b.Level=@Level-1
END
RETURN
END
GO
--调用函数查询002及其所有子节点
SELECT a.*
FROM tb a,f_Cid('002') b
WHERE a.ID=b.ID
/*--结果
ID PID Name
------ ------- ----------
002 001 烟台市
004 002 招远市
--*/
CREATE TABLE tb(ID char(3),PID char(3),Name nvarchar(10))
INSERT tb SELECT '001',NULL ,'山东省'
UNION ALL SELECT '002','001','烟台市'
UNION ALL SELECT '004','002','招远市'
UNION ALL SELECT '003','001','青岛市'
UNION ALL SELECT '005',NULL ,'四会市'
UNION ALL SELECT '006','005','清远市'
UNION ALL SELECT '007','006','小分市'
GO
--查询指定节点及其所有子节点的函数
CREATE FUNCTION f_Cid(@ID char(3))
RETURNS @t_Level TABLE(ID char(3),Level int)
AS
BEGIN
DECLARE @Level int
SET @Level=1
INSERT @t_Level SELECT @ID,@Level
WHILE @@ROWCOUNT>0
BEGIN
SET @Level=@Level+1
INSERT @t_Level SELECT a.ID,@Level
FROM tb a,@t_Level b
WHERE a.PID=b.ID
AND b.Level=@Level-1
END
RETURN
END
GO
--调用函数查询002及其所有子节点
SELECT a.*
FROM tb a,f_Cid('002') b
WHERE a.ID=b.ID
/*--结果
ID PID Name
------ ------- ----------
002 001 烟台市
004 002 招远市
--*/
相关文章推荐
- 查找指定节点的所有父节点的示例函数.sql
- SQL SERVER中查找指定节点的所有子节点的示例函数
- 查找指定节点的所有父子节点的示例函数
- SQL SERVER中查找指定节点的所有子节点的示例函数
- SQL SERVER中查找指定节点的所有子节点的示例函数
- 【SQL精彩语句】SQL SERVER 2000中查询指定节点及其所有子节点的函数(表格形式显示)
- 复制指定节点及其所有子节点到指定结点的处理示例(借鉴方式排序法).sql
- 查找指定节点的所有子节点的示例函数
- SQL 语句递归查询 With AS 查找所有子节点
- SQL - 查找 过程、函数、触发器 是否包含 某个指定 字符串
- WITH AS实现查找表中指定节点的所有子节点
- 查找指定节点的所有子节点的示例函数
- 查询指定节点及其所有子节点的函数
- 【SQL精彩语句】SQL SERVER 2005中查询指定节点及其所有子节点的方法(表格形式显示)
- 复制指定节点及其所有子节点到指定结点的处理示例
- 查询指定节点及其所有子节点的函数
- 查找指定节点的所有父节点的示例函数
- SQL 双亲节点查找所有子节点的实现方法
- sql 查找节点下的所有子节点,查找节点的所有父节点
- SQL经典代码---查找节点下所有子节点