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

SQL疑难有关问题

2012-03-14 
SQL疑难问题请教:数据表SQL codeCREATE TABLE t1(id INT IDENTITY(1,1),SortValue INT)INSERT INTO T1(Sor

SQL疑难问题
请教:

数据表

SQL code
CREATE TABLE t1(id INT IDENTITY(1,1),SortValue INT)INSERT INTO T1(SortValue)SELECT 1 UNION ALLSELECT 2 UNION ALLSELECT 3 UNION ALLSELECT 6 UNION ALLSELECT 7 UNION ALLSELECT 8 UNION ALLSELECT 9 UNION ALLSELECT 20


实现修改SortValue后,保证SortValue是正确的,即
1.如果把ID为4的SortValue改为4,根据现有数据的情况,直接改成4即可;
2.如果把ID为4的SortValue改为7,根据现有数据的情况,则ID为5的要变成8,ID=6的变为9,7的变10,8的不变;
3.如果把ID为4的SortValue改为2,根据现有数据的情况,则ID为2的要变成3,ID=3的变为4,依次类推;





[解决办法]
SQL code
declare @id int = 4declare @change int = 2 -- 4,7declare @group int = (select id-SortValue from T1 where SortValue=@change)update T1 set SortValue = case id when @id then @change else SortValue+1 end    where id=@id or id-SortValue=@group and SortValue>=@changeselect * from T1 

热点排行