有张数据库a表
编号 商品名称 标志 数量 单价 总价 日期
100 数码相机 0 2 2500 5000 2007-02-01
101 U盘a 0 3 200 600 2007-01-01
102 U盘b 0 1 300 300 2007-01-01
103 U盘c 0 1 300 300 2007-01-01
如果把编号103改成101效果如下:(就是编号字段里的数据有变化)
编号 商品名称 标志 数量 单价 总价 日期
100 数码相机 0 2 2500 5000 2007-02-01
101 U盘c 0 1 300 300 2007-01-01
102 U盘a 0 3 200 600 2007-01-01
103 U盘b 0 1 300 300 2007-01-01
编号 商品名称 标志 数量 单价 总价 日期
100 数码相机 0 2 2500 5000 2007-02-01
101 U盘a 0 3 200 600 2007-01-01
102 U盘b 0 1 300 300 2007-01-01
103 U盘c 0 1 300 300 2007-01-01
如果把编号103改成101效果如下:(就是编号字段里的数据有变化)
编号 商品名称 标志 数量 单价 总价 日期
100 数码相机 0 2 2500 5000 2007-02-01
101 U盘c 0 1 300 300 2007-01-01
102 U盘a 0 3 200 600 2007-01-01
103 U盘b 0 1 300 300 2007-01-01
select * from tableName where..... order by 编号 asc
*
from
表
order by
(case 编号
when 101 then 103
when 103 then 101
else 编号
end)
update a表 set 编号=101 where 编号=103
update a表 set 编号=103 where 编号=999
102 U盘b 0 1 300 300 2007-01-01
然后这两条变为这两条?
102 U盘a 0 3 200 600 2007-01-01
103 U盘b 0 1 300 300 2007-01-01upate tb
set 编号 = '101'
where 编号 = '103' update tb
set 编号 = cast(cast(编号 as int) + 1 as varchar)
where 编号 >= '101' and 商品名称 <> 'U盘c'
编号 商品名称 标志 数量 单价 总价 日期
100 数码相机 0 2 2500 5000 2007-02-01
101 U盘c 0 1 300 300 2007-01-01
102 U盘a 0 3 200 600 2007-01-01
103 U盘b 0 1 300 300 2007-01-01
就是把编号103更新成101,101就自动更新成102,依次类推。