Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Актуализиране на нулева стойност на колона от ненулева стойност в предишния ред

Какво ще кажете за това?:

;WITH CTE AS (
SELECT GID, SEQ, Name, Salary
FROM @Test t1
WHERE SEQ = (SELECT MIN(SEQ) FROM @Test t2 WHERE t2.GID = t1.GID)
UNION ALL
SELECT t.GID, t.SEQ, COALESCE(t.Name,c.Name), COALESCE(t.Salary,c.Salary)
FROM CTE c
JOIN @Test t ON t.GID = c.GID AND t.SEQ = c.SEQ+1
)
UPDATE t SET 
    Name = c.Name,
    Salary =  c.Salary
FROM @Test t
JOIN CTE c ON c.GID = t.GID AND c.Seq = t.SEQ


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Композитен първичен ключ sql връзка

  2. Условно JOIN изявление SQL Server

  3. Поправете съобщение 8114 „Грешка при преобразуването на тип данни varchar в числово“ в SQL Server

  4. Предайте променлива в тригер

  5. Задайте динамично ширината на изображението с Eval в ASP.NET