在数据库中上下移动行(SQL查询帮助)
发布时间:2020-12-12 16:24:58 所属栏目:MsSql教程 来源:网络整理
导读:在表格中,我希望能够“移动”行,我有一个名为sortid的列,它在插入时自动是一个高于最高值的值(通过在排序我的sortid desc时选择最高值很容易找到). 但是我对我用于ASP.NET页面上每行的’up / down’操作的查询有点困惑.我将使用什么查询来选择要移动的行的“
在表格中,我希望能够“移动”行,我有一个名为sortid的列,它在插入时自动是一个高于最高值的值(通过在排序我的sortid desc时选择最高值很容易找到).
但是我对我用于ASP.NET页面上每行的’up / down’操作的查询有点困惑.我将使用什么查询来选择要移动的行的“下方”或“上方”的行? 谢谢 解决方法向上或向下移动记录是通过分别与之前或之后的记录交换来完成的.如果SortId值始终是连续的(即,您不删除会导致间隙的记录),那么您只需添加或减去一个即可获得下一个或上一个记录.如果不保证记录是连续的,那么您必须找到要移动的记录旁边的记录. 要在以下之前找到记录的SortId: select max(SortId) from TheTable where SortId < @SortId 要在以下内容后找到记录的SortId: select min(SortId) from TheTable where SortId > @SortId 要交换这两个记录,您可以使用此技巧从另一个计算一个值: update TheTable set SortId = @SortId1 + @SortId2 - SortId where SortId in (@SortId1,@SortId2) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |