Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle SQL, लापता मान को निकटतम गैर-लापता के साथ भरें

आपका पहला संस्करण एक मामूली बदलाव के साथ काम करना चाहिए:

select A.*, 
       coalesce(V1, lag(V1 ignore nulls)  over (order by data)) V2
from Tab1 A;

ट्वीक partition by v1 को हटाना है lag() . से . coalesce() सरल भावों के लिए बस मेरी प्राथमिकता है।

वही ट्वीक दूसरे संस्करण के लिए भी काम करना चाहिए।

आपका संस्करण काम नहीं करता क्योंकि lag() मान एक ही विभाजन से आना चाहिए (या null . होना चाहिए ) जब आपके पास partition by v1 . हो , आप वास्तव में यह सुनिश्चित कर रहे हैं कि v1 वर्तमान पंक्ति के समान मान है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ओरेकल में अग्रणी शून्य के साथ मान प्रदर्शित नहीं हो रहे हैं

  2. ऑरैकल में अस्थायी टेबलस्पेस को कैसे कम करें?

  3. Oracle में CLOB और BLOB के बीच अंतर को समझने में मेरी सहायता करें

  4. पैरेंट और चाइल्ड टेबल में शामिल होने का सबसे अच्छा तरीका

  5. Oracle में LPAD () फ़ंक्शन