在SQL Server 2008中,我在FIFO队列中有一个“Q”表:
Person Position
23 1
49 5
108 2
. .
. .
因此,我当然可以使用
查看队列 SELECT * FROM Q ORDER BY Position
我需要能够在队列中上下移动人员。我知道我可以在存储过程中执行RBAR,但是如果可能的话,我希望能够在单个查询中完成它。要求是
move person 'x' to position y
即。在位置y的人之前移动'x'并将该人和后面的所有人移动到后面
算法是:
有这样的疑问吗?
答案 0 :(得分:0)
您有几种选择:
Id
,PrevId
),但Position
现在需要针对每项操作进行计算或重新计算Id
,PrevId
,NextId
);与上述相同position
为float
,当插入发生时,新position
计算为前一个和下一个位置的平均值;但最终你将失去精确度,所以你必须通过更均匀地重新分配值来维持它现在,回到你的问题。你说一个问题?不会发生。