orgid parentid name brotherid
1 0 广东 1
2 1 广州 1
3 2 越秀区 1
4 2 天河区 2
5 2 番禺区 3
.........
现在我插入了一条6 2 白云区 2 , 然后我要让所有同一parentid的数据的brotherid 从2开始依次往后排
1 0 广东 1
2 1 广州 1
3 2 越秀区 1
4 2 天河区 3
5 2 番禺区 4
6 2 白云区 2
这个样子,由于我的数据比较多,所以需要写一个动态的sql语句,大家帮帮忙啊
1 0 广东 1
2 1 广州 1
3 2 越秀区 1
4 2 天河区 2
5 2 番禺区 3
.........
现在我插入了一条6 2 白云区 2 , 然后我要让所有同一parentid的数据的brotherid 从2开始依次往后排
1 0 广东 1
2 1 广州 1
3 2 越秀区 1
4 2 天河区 3
5 2 番禺区 4
6 2 白云区 2
这个样子,由于我的数据比较多,所以需要写一个动态的sql语句,大家帮帮忙啊
解决方案 »
- 跪求SQL Server2000 (共34讲)电子科技大学视频
- SQL2005问题:将截断字符串或二进制数据,急等解决
- 怎么将SQLServer数据库中的日期批量加上1年?
- 帮我看看一SQL语句
- 请大家帮忙,help!
- 我的SqlServer服务器出了问题,请求解决!
- 关于SQL Server 2005数据误删除恢复讨论
- 请教大师,一个sql语句模糊查询的问题
- 可不可以这样建外键?User表和File表,在File表中有UserID1,UserID1,可不可以与User表中User相关联?
- 怎样使查询出来的数据(一个字段)不重复??
- 小弟最近在学习做BBS,主页使用DataList双层嵌套,之前做的太简单,现在想扩充下信息,但是在写存储过程的时候卡住了,三表查询。。。大家帮我看看吧,谢谢啦!
- 一个错误
, @brotherid int
, @orgid int
set @orgid = 6
set @parentid = 2
set @brotherid = 2
update tablename set brotherid = brotherid + 1 where parentid = @parentid and brotherid >= @brotherid and orgid != @orgid
for insert
as
begin
update tb set brotherid=brotherid+1 where brotherid>=(select max(brotherid) from inserted)
end
go
1 0 广东 1
2 1 广州 1
3 2 越秀区 1
4 2 天河区 2
5 2 番禺区 3如果是这样的数据,brotherid不需要存在表里,下面的查询即可实现:SELECT orgid,parentid,name,
brotherid = ROW_NUMBER() OVER(PARTITION BY parentid ORDER BY orgid)
FROM 表