求救SQL 语句问题,高手请进。。

xr396464010 2010-01-07 12:07:15
现数据库表有如下几条信息
PV_ID PV_NAME PV_PARENTID

ED1FD8F1-1221-4CE7-98E8-998 电脑整机首页 0
AA922D8D-1EAF-43EF-AC90-0D4 核心配件 ED1FD8F1-1221-4CE7-98E8-998
0F5522B9-83E0-4B31-859A-552 CPU AA922D8D-1EAF-43EF-AC90-0D4
0ECD8C40-CC6F-4C03-9BBC-F4A AMD 0F5522B9-83E0-4B31-859A-552

一个字段中一共有四级, 父节为0代表,其它每个字级对应父级的ID
而我要显示的结果是:
电脑整机首页 核心配件 CPU AMD
...全文
123 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
beibeisay88 2010-01-07
  • 打赏
  • 举报
回复
飘过
xr396464010 2010-01-07
  • 打赏
  • 举报
回复
谢谢楼上的朋友,希望能够帮我解答下这个问题
xr396464010 2010-01-07
  • 打赏
  • 举报
回复
确实只有四级,但是每个级别下面会有很多了级, 很多数据,楼上的朋友,如果很多了级的话用上面你写的那个语句可以么? 例如 CPU下面有 AMD Intel 或者 电脑整机首页 下面有 核心配件、网络产品、办公耗材
等等
tianliang1 2010-01-07
  • 打赏
  • 举报
回复
顶楼上。。。
jiangshun 2010-01-07
  • 打赏
  • 举报
回复
--> 测试数据:[TB]
if object_id('[TB]') is not null drop table [TB]
create table [TB]([PV_ID] varchar(27),[PV_NAME] varchar(12),[PV_PARENTID] varchar(27))
insert [TB]
select 'ED1FD8F1-1221-4CE7-98E8-998','电脑整机首页','0' union all
select 'AA922D8D-1EAF-43EF-AC90-0D4','核心配件','ED1FD8F1-1221-4CE7-98E8-998' union all
select '0F5522B9-83E0-4B31-859A-552','CPU','AA922D8D-1EAF-43EF-AC90-0D4' union all
select '0ECD8C40-CC6F-4C03-9BBC-F4A','AMD','0F5522B9-83E0-4B31-859A-552'

--如果只有四级的话就可以这样写,四个连接
select A.[PV_NAME],B.[PV_NAME],C.[PV_NAME],D.[PV_NAME] from [TB] A,[TB] B,[TB] C,[TB] D
where A.[PV_ID]=B.[PV_PARENTID] and B.[PV_ID]=C.[PV_PARENTID] and C.[PV_ID]=D.[PV_PARENTID]
/*
PV_NAME PV_NAME PV_NAME PV_NAME
------------ ------------ ------------ ------------
电脑整机首页 核心配件 CPU AMD

(1 行受影响)

*/
xr396464010 2010-01-07
  • 打赏
  • 举报
回复
能写信完整的SQL 语句吗,针对上面表的结构,谢谢了呀, 小第不太会写SQL 语句。。
王向飞 2010-01-07
  • 打赏
  • 举报
回复
case PV_PARENTID when 0 then 电脑整机首页 else 0 as 电脑整机首页
when ED1FD8F1-1221-4CE7-98E8-998 then 核心配件 else 0 as 核心配件

111,119

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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