且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

光标以使用来自上一行和当前行的值更新行

更新时间:2023-01-21 18:06:14

OK,Try this。

OK, Try this.

CREATE TABLE MyTable (Id INT Identity, Col2 int, Col3 int)

INSERT INTO MyTable (Col2, Col3)
VALUES (2,1), (3,0), (4,0),(5,0),(6,0)

SELECT * from MyTable

WHILE (SELECT COUNT(*) FROM MyTable WHERE Col3=0) > 0
BEGIN
    UPDATE TOP (1) MyTable
    SET CoL3 = (Mytable.col2 + (select col3 from mytable t2 where (t2.id = mytable.id-1)))
    WHERE Col3 = 0
END

SELECT * from MyTable

使用 WHILE 循环,在大多数情况下应该比光标快。

Uses a WHILE loop which should be faster than a cursor under most circumstances.