Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

kursor untuk memperbarui baris dengan nilai dari baris sebelumnya dan saat ini

Oke, Coba ini.

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

Menggunakan WHILE loop yang seharusnya lebih cepat dari kursor di sebagian besar keadaan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara membuat alias database di SQL Server

  2. Tidak sama dengan <> !=operator pada NULL

  3. Tabel yang sangat besar di SQL Server

  4. Dapatkan BARIS sebagai KOLOM (permintaan PIVOT dinamis SQL Server)

  5. Cara Mendapatkan Tanggal Saat Ini di SQL Server