[英]How to query hierarchical information with SQL-Server 2000?
我有一个表Folders
其中包含有关文件Folders
的层次结构信息:
FolderID FolderName ParentID
1 Folder1 0
2 Folder2 1
3 Folder3 2
4 Folder4 3
对于Folder4
我想以以下格式获取父文件夹:
Folder1\Folder2\Folder3\
注意:我之前已经问过这个问题,但是由于使用SQL-Server 2000,所以不能使用CTE。
我编写了一个SQL函数,该函数应返回您要查找的内容。
/* Set up test data */
create table Folders (
FolderID int,
FolderName varchar(10),
ParentID int
)
insert into Folders
(FolderID, FolderName, ParentID)
select 1,'Folder1',0 union all
select 2,'Folder2',1 union all
select 3,'Folder3',2 union all
select 4,'Folder4',3
go
/* Create function */
create function dbo.CreateFolderPath (@FolderID int)
returns varchar(1000)
as
begin
declare @ParentID int
declare @FolderPath varchar(1000)
set @FolderPath = ''
select @ParentID = ParentID
from Folders
where FolderID = @FolderID
while @ParentID<>0 begin
select @FolderPath = FolderName + '\' + @FolderPath, @ParentID = ParentID
from Folders
where FolderID = @ParentID
end /* while */
return @FolderPath
end /* function */
go
/* Demo the function */
select dbo.CreateFolderPath(4)
/* Clean up after demo */
drop function dbo.CreateFolderPath
drop table Folders
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.