?? 8.2.2 樹形數(shù)據(jù)廣度排序處理示例.sql
字號:
--測試數(shù)據(jù)
DECLARE @t TABLE(ID char(3),PID char(3),Name nvarchar(10))
INSERT @t SELECT '001',NULL ,'山東省'
UNION ALL SELECT '002','001','煙臺市'
UNION ALL SELECT '004','002','招遠(yuǎn)市'
UNION ALL SELECT '003','001','青島市'
UNION ALL SELECT '005',NULL ,'四會市'
UNION ALL SELECT '006','005','清遠(yuǎn)市'
UNION ALL SELECT '007','006','小分市'
--廣度排序顯示處理
--生成每個節(jié)點的層次數(shù)據(jù)
DECLARE @t_Level TABLE(ID char(3),Level int)
DECLARE @Level int
SET @Level=0
INSERT @t_Level SELECT ID,@Level
FROM @t
WHERE PID IS NULL
WHILE @@ROWCOUNT>0
BEGIN
SET @Level=@Level+1
INSERT @t_Level SELECT a.ID,@Level
FROM @t a,@t_Level b
WHERE a.PID=b.ID
AND b.Level=@Level-1
END
--顯示結(jié)果
SELECT a.*
FROM @t a,@t_Level b
WHERE a.ID=b.ID
ORDER BY b.Level,b.ID
/*--結(jié)果
ID PID Name
------- --------- ----------
001 NULL 山東省
005 NULL 四會市
002 001 煙臺市
003 001 青島市
006 005 清遠(yuǎn)市
004 002 招遠(yuǎn)市
007 006 小分市
--*/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -