当前位置: 代码迷 >> Sql Server >> 求一条SQL语句看看能不能实现这样的要求,该如何解决
  详细解决方案

求一条SQL语句看看能不能实现这样的要求,该如何解决

热度:58   发布时间:2016-04-27 13:10:41.0
求一条SQL语句看看能不能实现这样的要求
select od,title from table1 order by od 返回这样的结果
100 aaaa
200 bb
300 ccc
400 这行是400
500 500行

现在想在or为300的后边插入一行,结果变成
100 aaaa
200 bb
300 ccc
400 这是插入的行 ==>在od为300的行插入后,原300后边的数据重新按顺序编号
500 这行是400 ==>这是原来的400, 上面插入后or这一列的值变为500
600 500行

这样的要求能不能用一条SQL语句实现啊?

------解决方案--------------------
declare @T table(od int,title varchar(50))
insert into @T

select 100,'aaaa' union all
select 200,'bb' union all
select 300,'ccc' union all
select 400,'这行是400' union all
select 500,'500行' 
 
 
--400 这是插入的行 

select od,title from @T order by od 
declare @temp int
set @temp=400 
update @T set od=od+100 where od>[email protected]
insert into @T(od,title) values(@temp,'这是插入的行')
select od,title from @T order by od 

————————————————————————————————
od title
----------- --------------------------------------------------
100 aaaa
200 bb
300 ccc
400 这是插入的行
500 这行是400
600 500行
  相关解决方案