插入如上表的编号以后,因为我表格的排序要用ischeck来排序,当我要在ischeck为2、3 中间插入一个值 ,也就是下面id为6的是我插入的一条语句,我想达到下面这张表达到的效果,其实就是给ischeck 重新编号我该如何写存储过程,效果如下表显示
id name ischeck
1 jack 1
2 tony 2
3 amanda 4
4 xiao 5
5 ming 6
6 tao 3
这样的存储过程怎么写?求各位帮忙!!谢谢!
------解决方案--------------------
id name ischeck
1 jack 1
2 tony 2
3 amanda 4
4 xiao 5
5 ming 6
6 tao 3
按id排序有问题么?
------解决方案--------------------
6那个是你以为插入到2、3之间,但是没有任何标识,sqlserver不知道啊
------解决方案--------------------
這不是昨天的帖子的嗎?
難道你想取沒用過的最小值?
select top 1 b.number from #tb a join master .dbo.spt_values b on a.ischeck <>b.number and a.id =b.number
where b.type ='P' and b.number >0
------解决方案--------------------
那就ischeck >=3的加1,然后再插入tao 3这个呗~~
------解决方案--------------------
先了解一下,你是如何实现插入到2、3之间?
------解决方案--------------------
我好像没看明白是什么意思
------解决方案--------------------
你要把数据,插入到2-3之间,这个好像很难实现。
因为,假如你直接把这条新的数据,插入到最后,也就是你上面的id = 6,而你的ischeck要排序为3,就很难来排序。如果想要实现,那么必须把原来的ischeck = 3的修改4,ischeck = 4的修改为5,为5的修改为6,然后这个ischeck才能是3