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

技术狼 2013-05-18 12:08:27

1.上面的数据,我想实现通过iTopId找到对应的菜单名字,因为菜单可能有多个,
我想要的结果是,每一行的数据都能显示完整路径,比如:【数据库/SQL SERVER/基础知识】。这种结构。想了 好久都没有思路。
...全文
153 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
技术狼 2013-05-18
  • 打赏
  • 举报
回复
引用 1 楼 QIU176161650 的回复:
把你想要 的结果列出来看看呢?
数据库/SQL SERVER/基础知识 就是这种,通过一个iTopId找到对应的名字,如果有父节点就继续往上面找,一直找到iTopId为NULL,那就是顶层菜单了。数据我举个例子:比如有一条数据为“基础知识”,然后他iTopId是2,然后在通过iTopId=2找它的iIden,返回“SQL SERVER”,如果iIden=2,然而路径就是【SQL SERVER/基础知识】,不知道是否明白。
技术狼 2013-05-18
  • 打赏
  • 举报
回复
数据库/SQL SERVER/基础知识 就是这种,通过一个iTopId找到对应的名字,如果有父节点就继续往上面找,一直找到iTopId为NULL,那就是顶层菜单了。数据我举个例子:比如有一条数据为“基础知识”,然后他iTopId是2,然后在通过iTopId=2找它的iIden,返回“SQL SERVER”,如果iIden=2,然而路径就是【SQL SERVER/基础知识】,不知道是否明白。
CHQIUU 2013-05-18
  • 打赏
  • 举报
回复
把你想要 的结果列出来看看呢?
中关村网名 2013-05-18
  • 打赏
  • 举报
回复
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
--
-------------------------------------- 是不是这样?

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧