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

Заменете нулевата стойност с предишна налична стойност в заявката за ред SQL сървър

Изявлението по-долу работи перфектно

SELECT 
CASE WHEN DATE1 IS NULL 
     THEN 
(SELECT TOP 1 DATE1 FROM Table1 WHERE ID2<T.ID2 
  AND Date1 IS NOT NULL ORDER BY ID2 DESC) ELSE Date1 END AS DATENEW,
*FROM Table1 T

Резултатът като по-долу

        DATENEW             Date1          ID   Class      ID2
        11/30/2015          11/30/2015     ID1  ClassName   1
        11/30/2015          NULL           ID1  ClassName   2
        11/30/2015          NULL           ID1  ClassName   3
        11/30/2015          NULL           ID1  ClassName   4
        12/31/2015          12/31/2015     ID1  ClassName   5
        12/31/2015          NULL           ID1  ClassName   6
        12/31/2015          NULL           ID1  ClassName   7


  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 Server

  2. загубени прекъсвания на редове в sql сървър

  3. Използване на PIVOT в SQL Server 2008

  4. Как да изтриете задача на агент на SQL Server в Azure Data Studio

  5. SQL Server:Как да намерите всички имена на екземпляри на localdb