我们有一个按照表格中的“优先级”数字处理记录的系统。我们通过表格内容来定义优先级,例如:
UPDATE table
SET priority=3
WHERE processed IS NULL
UPDATE table
SET priority=2
WHERE balance>50
UPDATE table
SET priority=1
WHERE value='blah'
(请忽略优先级之间可能存在的“重叠”:))
这个工作得很好 - 表格按照优先级顺序处理,因此所有列“value”为'blah'的行都是首先被处理的。
我被赋予了通过定义的“权重”对记录进行排序的任务。例如,我们希望50%的处理是优先级1,25%的处理是优先级2,25%的处理是优先级3。因此,从上面的例子中,每100个记录中有50个记录的“value”为'blah',25个记录的“balance”大于50等等。
我正在尝试弄清楚如何做到这一点:一些加权递增值似乎是最好的方式,但我无法理解如何编写代码。有人能帮忙吗?
编辑:抱歉,应该说:这是在MSSQL 2008上运行。