多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > Sqlserver > SQL Server 樹形結構數據處理的存儲過程

SQL Server 樹形結構數據處理的存儲過程

來源:程序員人生   發布時間:2013-11-19 16:52:11 閱讀次數:3138次

我們在平常的系統開發中常常會遇到像無限級分類這樣的樹型結構數據,現提供一個可用的數據庫存儲過程,可以完成樹型結構數據的排序。

環境:windows7+Sql Server 2008

說明:下面代碼已經轉換成Sql server2000的腳本,處理效果如下,看sortname字段結果,代碼經過測試。

創建樹型表:

CREATE TABLE [dbo].[categories](
[category_id] [int] IDENTITY(1,1) NOT NULL,
[parent_id] [int] NULL,
[category_name] [varchar](500) NULL,
CONSTRAINT [PK_categories] PRIMARY KEY CLUSTERED
(
[category_id] ASC
) ON [PRIMARY]
) ON [PRIMARY]
GO

插入測試數據:

INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (1, 0, CONVERT(TEXT, N'A'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (2, 0, CONVERT(TEXT, N'B'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (3, 1, CONVERT(TEXT, N'AA'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (4, 3, CONVERT(TEXT, N'AAA'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (5, 2, CONVERT(TEXT, N'BB'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (6, 1, CONVERT(TEXT, N'AA2'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (7, 1, CONVERT(TEXT, N'AA3'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (8, 3, CONVERT(TEXT, N'AAA2'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (9, 4, CONVERT(TEXT, N'AAA3'))
INSERT [dbo].[categories] ([category_id], [parent_id], [category_name]) VALUES (10, 2, CONVERT(TEXT, N'BB2'))

創建存儲過程,表中的level為級別深度,通過生成的臨時表與分類表關聯顯示結果:

CREATE PROCEDURE [dbo].[Get_TreeData]
AS
BEGIN
--創建臨時表
create table #tmp_table (id int,[level] int)

declare @LevelValue int
set @LevelValue=0
insert #tmp_table select 0,@LevelValue
--將數據寫入到臨時表
while @@rowcount>0
begin
set @LevelValue=@LevelValue+1
insert #tmp_table select a.category_id,@LevelValue
from categories as a,#tmp_table as b
where a.parent_id=b.[id] and b.[level]=@LevelValue-1
end
--select * from #tmp_table
select a.category_id,a.parent_id,a.category_name,b.[level],
case
when a.parent_id=0 then a.category_name else replicate('-',b.[level])+a.category_name
end as sortname
from categories as a join #tmp_table as b on a.category_id=b.id
order by sortname
return
END

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产一区二区久久 | 韩国jizz | 久久亚洲成a人片 | 亚洲专区中文字幕 | 三级欧美在线 | 精品久久久久久 | 爆操网站 | 欧美精品一区午夜小说 | 日本欧美久久久久免费播放网 | 西欧free性video意大利 | 图片区小说区综合区 | 免费v片视频在线观看视频 免费v片在线观看 | 国产zzzwww在线观看 | 中文在线视频观看 | 天堂日本岛a | 国产亚洲精品九九久在线观看 | 亚洲网站免费观看 | 久久精品免费一区二区视 | 日本一二线不卡在线观看 | japanese日本护士xx亚洲 | 国产免费叼嘿在线观看 | 精品亚洲欧美中文字幕在线看 | 视色在线 | 亚洲成a人片在线观看中文动漫 | 微信影院手机在线播放 | 国产老肥妇视频 | 日本vs欧美一区二区三区 | 国产高清免费视频 | 亚洲激情在线播放 | 色老头成人免费视频天天综合 | 91国内精品久久久久免费影院 | 啪啪.com | 欧美特级特黄a大片免费 | 久久中文字幕亚洲精品最新 | 国产裸舞凸点福利小视频 | 9丨精品国产高清自在线看 ⅹxx日本护土 | 被男人吃奶添下面好舒服视频 | 在线免费看a爱片 | 国产精品一区二 | 免费一区二区三区四区 | 国产成人综合洲欧美在线 |