查找子类的所有上级父类?

yonggangxue 2009-09-27 06:47:02
表名:commonsite_pcls
字段:id, cls_name , parent_id
现有的数据:
1 学生 0
2 教师 0
4 特岗教师 2
5 招聘 2
6 工资待遇 2
7 派遣 1
8 中考 1
20 其他 0
23 代课教师 2
24 职称 2
25 高考 1
26 档案 1
28 教师资格 2
29 培训 2
30 奖罚 2
31 民办教师 2
32 其他 2
33 就业 1
34 助学金 1
35 学历认证 1
36 专升本 1
37 减负 1
38 学位 1
39 入学 1
40 小升初 1
41 其他 1
42 教育收费 0
43 安全 0
44 普通话 0
45 大学 5
46 中学 5
47 小学 5
48 大学 6
49 中学 6
50 小学 6
51 大学 24
52 中学 24
53 小学 24
54 大学 28
55 中学 28
56 小学 28
查询的结果:比如 查询id=45
显示结果为:
id parent_name
45 教师-招聘-大学
用sql写个函数该怎么写?
...全文
118 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanglinqiang 2009-09-28
  • 打赏
  • 举报
回复
用存储过程吧!
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER proc [dbo].[selectp]
@id int
as
declare @pid int
declare @s varchar(400)
set @pid=0
set @s=''
select @pid=parent_id from dbo.commonsite_pcls where id=@id
while @pid<>0
begin
select @pid=parent_id,@s=cls_name+'-'+@s from dbo.commonsite_pcls where id=@pid
end
select id,@s+cls_name as cls_name from dbo.commonsite_pcls where id=@id

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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