Sql server 2008 r2 我必须使用游标更新表
我需要帮助 我有一张这样的桌子:Sql server 2008 r2 我必须使用游标更新表,sql-server-2008-r2,Sql Server 2008 R2,我需要帮助 我有一张这样的桌子: itemcode itemiicode itemordercode serialnum cpserialnum 4 2 4 21 21 5 2 5 -1 -1 6 3 6 14 14 7 4 7
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
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
我想要一个使用游标的结果表,如下所示
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是主键
使用游标,我们必须更新表
请帮忙!
谢谢和问候
Harsha如我所见,您希望更新列:cpserialnum 规则是:如果当前值为-1,则应插入上一个值 为此,您不需要使用游标,但可以通过简单的内部选择来实现,如下所示:
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
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
这是一个演示。您想更新哪一列?什么价值?你试过什么?