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

MERGE स्टेटमेंट में कई कॉलम अपडेट करें ORACLE

मुझे नहीं लगता कि आपको लूप की जरूरत है। मुझे लगता है कि आपकी आईडी प्राथमिक कुंजी है और आप अपने उदाहरण में कई बार क्रैंक दोहराने का मतलब नहीं रखते थे।

क्या कुछ इस तरह काम करेगा?

राज ए की टिप्पणी के अनुसार संपादित करें। यह केवल उन पंक्तियों को अपडेट करेगा जहां अन्य क्षेत्रों में से एक बदल गया है। ध्यान दें कि यह उन पंक्तियों को अपडेट नहीं करेगा जहां एक NULL है और दूसरा NULL नहीं है।

MERGE INTO final T 
USING ( SELECT id, score, crank, urank FROM test ) S
   ON ( S.vid = T.id AND 
        ( S.crank != T.crank OR S.score != T.score OR S.urank != T.urank ))
 WHEN MATCHED SET crank = S.crank, score = S.score, 
      crank = S.crank, urank = S.urank 
 WHEN NOT MATCHED THEN INSERT
      [... not sure what you want to do in this case ...]



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle में PLS-00323 त्रुटि का समाधान करें

  2. Oracle में RTRIM () फ़ंक्शन

  3. वर्तमान परिवर्तन खोजने के लिए LogMiner का उपयोग करना

  4. जावा में मान -2 की ExecuteBatch विधि वापसी सरणी

  5. कैसे पता करें कि Oracle में कोई विशेष तालिका कब बनाई गई थी?