表名: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写个函数该怎么写?
------解决方案--------------------
用存储过程吧!
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 [email protected]
while @pid<>0
begin
select @pid=parent_id,@[email protected] from dbo.commonsite_pcls where [email protected]
end
select id,@s+cls_name as cls_name from dbo.commonsite_pcls where [email protected]