Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zastąp wartość null poprzednią dostępną wartością w zapytaniu serwera Row SQL

Poniższe stwierdzenie działa idealnie

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

Wyjście jak poniżej

        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. Serwer SQL Muszę naprawić błąd przekroczenia limitu czasu. Upłynął limit czasu

  2. Dlaczego UPDATE trwa znacznie dłużej niż SELECT?

  3. SQL Server 2008 IDENTITY_INSERT jest włączony błąd podczas wstawiania

  4. Sposób na wyodrębnienie z danych wartości DateTime bez sekund

  5. Usuń konto pocztowe bazy danych (SSMS)