sql >> Databáze >  >> RDS >> Sqlserver

kurzor pro aktualizaci řádku hodnotami z předchozího a aktuálního řádku

OK, zkuste to.

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

Používá WHILE smyčka, která by měla být za většiny okolností rychlejší než kurzor.



  1. Hromadné vkládání jádra SQLAlchemy je pomalé

  2. Dejte přednost ORDER BY před GROUP BY v MySQL bez poddotazu

  3. jak připojit sql server pomocí ovladače JTDS v systému Android

  4. Vložení času do databáze mysql v jazyce Java