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

求助SQL的写法,在线求助,急急急!!!!

1.上面的数据,我想实现通过iTopId找到对应的菜单名字,因为菜单可能有多个,
 我想要的结果是,每一行的数据都能显示完整路径,比如:【数据库/SQL SERVER/基础知识】。这种结构。想了  好久都没有思路。
SQL SQLSERVER SQLSERVER?2008

------解决方案--------------------
drop table #tb;
Create table #tb(id int identity(1,1),ilden int,sname nvarchar(200),itopid int);
Insert Into #tb(ilden,sname,itopid)
Select null,'基础知识',2 Union All
Select 2,'SqlServer',3 Union All
Select 3,'Book',null
with t as 
(
 Select  sname,ilden,itopid From #tb Where itopid is null
 Union All
 Select Cast(t.sname+ N'/'+#tb.sname as Nvarchar(200))as sname,#tb.ilden,#tb.itopid
 From t 
 Inner Join #tb
 On t.ilden = #tb.itopid)
 Select *
 From t
--------------------
--Book                         3       NULL
--Book/SqlServer         2 3
--Book/SqlServer/基础知识 NULL 2
--

--------------------------------------
是不是这样?