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