我需要帮助!
我有一张这样的表:
itemcode itemiicode itemordercode serialnum cpserialnum
4 2 4 21 21
5 2 5 -1 -1
6 3 6 14 14
7 4 7 15 15
8 5 8 41 41
9 6 9 72 72
10 6 10 -1 -1
11 6 11 -1 -1
我想使用Cursors
之类的结果表itemcode itemiicode itemordercode serialnum cpserialnum
4 2 4 21 21
5 2 5 -1 21
6 3 6 14 14
7 4 7 15 15
8 5 8 41 41
9 6 9 72 72
10 6 10 -1 72
11 6 11 -1 72
itemcode是主键 使用游标我们必须更新表
请帮忙! 感谢致敬 哈尔沙
答案 0 :(得分:1)
如我所见,您想要更新列:cpserialnum。
规则是:如果当前值为-1 ,则应插入上一个值。
为此,您不需要使用CURSOR
,但是一个简单的内部选择就可以实现,如下所示:
UPDATE items
SET cpserialnum =
(SELECT TOP 1 cpserialnum
FROM items innerItems
WHERE innerItems.itemordercode <= items.itemordercode
AND cpserialnum != -1
ORDER BY itemordercode DESC)
FROM items
SELECT * FROM items
这是SQLFiddle演示。