VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1095|回复: 3

请教各位高手一SQL文啊

[复制链接]

1

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-12-15 19:00:01 | 显示全部楼层 |阅读模式
表如:
id      par    root
1       0       A
2       1      
3       1         
4       0       ss
5       4       B
6       4      
7       2       C
8       2      

用sql文实现 par非0记录的root值和id等于其par的root值一致。
回复

使用道具 举报

0

主题

48

帖子

30.00

积分

新手上路

Rank: 1

积分
30.00
发表于 2020-12-15 21:15:01 | 显示全部楼层
多执行几次就行了
update a set a.root=b.root from tablename a join tablename b on a.par=b.id
回复

使用道具 举报

0

主题

88

帖子

55.00

积分

新手上路

Rank: 1

积分
55.00
发表于 2020-12-16 00:15:01 | 显示全部楼层
update a
set a.root=b.root
from 表A a , 表A b
where a.par=b.id
回复

使用道具 举报

0

主题

48

帖子

30.00

积分

新手上路

Rank: 1

积分
30.00
发表于 2020-12-16 01:15:01 | 显示全部楼层
create  function get_root(@id varchar(10))
returns varchar(10)
as
begin
   declare @str varchar(10)
   declare @i varchar(10)
   select @str=id,@i=par from tablename where id=@id
   while @i<>'0'
         select @str=id,@i=par from tablename where id=@i
   select @str=root from tablename where id=@str
  return(@str)
end
go
select dbo.get_root('7')
update tablename set root=dbo.get_root(id)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表