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

SQL - Nahraďte opakované řádky hodnotami null při zachování počtu řádků

Můžete to provést výčtem řádků do jednoho roku. Poté aktualizujte všechny kromě prvního:

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;

Pokud to chcete jako select prohlášení:

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. Volání funkce s uživatelem definovanými parametry typu (Oracle ODP.NET)

  2. Sada problémů 1 – Identifikace entit

  3. Uspořádejte data na základě časového razítka mysql + PHP

  4. Problémy s používáním rozšíření SQL Server 2008 R2 PowerShell mimo SQLPS