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

पीएल/एसक्यूएल में, आप अगली पंक्ति के आधार पर एक पंक्ति को कैसे अपडेट करते हैं?

मर्ज स्टेटमेंट का उपयोग करने का प्रयास करें। सुनिश्चित नहीं है कि यह वही करता है जो आप चाहते हैं लेकिन इसे काम करना चाहिए। दुर्भाग्य से सम्मिलित खंड आवश्यक है) लेकिन कभी भी कॉल नहीं किया जाना चाहिए।

merge into t a
using (
  select 
    A, 
    B, 
    timestamp, 
    lag(A) over (order by id, timestamp) as prior_A,
    lag(timestamp) over (order by B, timestamp) as prior_timestamp
  from t) b
on  (a.B = b.B)
when matched then 
  update set a.a = case when b.timestamp-b.prior_timestamp <= 45 
    then b.prior_A else b.A end
when not matched then insert (B) values (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. dyld:Apple M1 पर php oic8 के लिए आलसी प्रतीक बंधन विफल रहा

  2. कुंजी के साथ दो स्तंभों के बीच संख्याओं की सूची प्राप्त करें

  3. बल्क संग्रह का उपयोग करते हुए LIMIT के लिए मान सेट करना

  4. .NET कोर 2 + System.Data.OracleClient। चीनी अक्षर काम नहीं करते

  5. jdbc के लिए कोई उपयुक्त ड्राइवर नहीं मिला:oracle:thin:@localhost:1521:XE वेब एप्लिकेशन चलाते समय