首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一SQL语句 疑难解决方案

2012-02-22 
求一SQL语句 疑难如下结构:sr111213141516s,r主键删除1,2和1,4行数据,并且保持r连续结果应为:srt11a12c13e

求一SQL语句 疑难
如下结构:
s       r  
1       1
1       2
1       3
1       4
1       5
1       6
s,r主键
删除1,2   和   1,4行数据,并且保持r连续
结果应为:
s       r     t
1       1     a  
1       2     c  
1       3     e
1       4     f
最好批处理


[解决办法]
create table a
(
s int,
r int
)
insert into a
select 1,1 union
select 1,2 union
select 1,3 union
select 1,4 union
select 1,5 union
select 1,6

delete from a where (s=1 and r=2) or (s=1 and r=4)

update a
set a.r= c.cnt
from a inner join
(
select b.s,b.r,cnt=(select count(1) from a where a.s=b.s and a.r <=b.r)
from a b
) c on a.s=c.s and a.r=c.r

select * from a
--结果
s r
----------- -----------
1 1
1 2
1 3
1 4

(4 行受影响)

热点排行