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

SQL - Ganti baris berulang dengan nilai nol sambil mempertahankan jumlah baris

Anda dapat melakukan ini dengan menghitung baris dalam satu tahun. Kemudian perbarui semua kecuali yang pertama:

with toupdate as (
      select t.*, row_number() over (partition by [year] order by [date]) as seqnum
      from t
     )
update toupdate
    set [year] = NULL
    where seqnum > 1;

Jika Anda menginginkan ini sebagai select pernyataan:

with ts as (
      select t.*, row_number() over (partition by [year] order by [date]) as seqnum
      from t
     )
select [date],
       (case when seqnum = 1 then [year] end) as [year]
from ts;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Butuh bantuan dalam perhitungan menggunakan dua Dataset menggunakan Expression SSRS

  2. Kerangka kerja entitas sangat lambat dimuat untuk pertama kalinya setelah setiap kompilasi

  3. Perbarui Baris di Tujuan SSIS OLEDB

  4. Menggunakan hasil dari prosedur Tersimpan dalam pernyataan Pilih

  5. Menggabungkan LIKE dengan IN dalam SQL