日期:2014-05-17  浏览次数:20600 次

(最新版)Sql 求助查询的问题,(帖子内容不一样)
表结构如下:
FileID(int) ParentFileID(int,null) Name Path(nvarchar(4000),null)
1 0 文件夹1 ,-1,(相当于是跟文件夹)
2 1 文件夹1.1 ,-1,1,(相当于是一级文件夹)
3 2 文件夹1.1.1 ,-1,1,2,(相当于二级文件夹)
4 3 文件名 null(相当于是二级文件夹下的一个文件)
搜索要求:
传参数FIleID=4,搜索结果:
file的路径:文件夹1/文件夹1.1/文件夹1.1.1

搜索条件是:换句话说就是 查询给定文件的路径

------解决方案--------------------
你这就三个字段 最后这个是怎么回事 4 3 文件名 null(相当于是二级文件夹下的一个文件)

把格式写清楚
------解决方案--------------------
--
declare @p as varchar(4000)
set @p=''
with tmp as (
select t2.*,t1.Path CHARINDEX(','+convert(varchar(50),t2.FileID)+',') ix 
from t t1
cross join t t2
where t1.FIleID=4 and t1.Path CHARINDEX(','+convert(varchar(50),t2.FileID)+',')>=1
)
select @p=@p+Name+'/' from tmp order by ix

if len(@p)>0
set @p=left(@p,len(@p)-1)

select @p