Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Wypełnij wartości null ostatnią niezerową kwotą — Oracle SQL

ostatnia_wartość z IGNORE NULLS działa dobrze w Oracle 10g:

select item, year, month, amount, 
       last_value(amount ignore nulls) 
         over(partition by item 
              order by year, month 
              rows between unbounded preceding and 1 preceding) from tab;

rows between unbounded preceding and 1 preceding ustawia okno dla funkcji analitycznej.

W tym przypadku Oracle szuka LAST_VALUE wewnątrz grupy zdefiniowanej w PARTITION BY (ta sama pozycja) od początku (UNBOUNDED PRECEDING) do bieżącego wiersza - 1 (1 PRECEDING)

Jest to powszechny zamiennik LEAD/LAG z IGNORE NULLS w Oracle 10g

Jeśli jednak używasz Oracle 11g, możesz użyć LAG z odpowiedzi Gordona Linoffa (jest mała literówka z "ignoruj ​​wartości null")



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak pisać małymi literami obiekty w bazie danych Oracle?

  2. Połącz i przetwarzaj dane Oracle z Objective-C w systemie Mac OS

  3. Ustaw domyślną wartość pól tabeli ORACLE na formułę

  4. Wybierz oświadczenie REF oracle

  5. Funkcja CEIL() w Oracle