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

Oracle 10g में लेफ्ट जॉइन के साथ डिलीट करें

शैनन का समाधान जाने का रास्ता है:ऑपरेटर का उपयोग करें NOT IN (या NOT EXISTS)।

हालाँकि आप Oracle में किसी जॉइन को हटा या अपडेट कर सकते हैं, लेकिन सिन्थैक्स MS SQL सर्वर के समान नहीं है:

SQL> DELETE FROM (SELECT grp.*
  2                  FROM grp
  3                  LEFT JOIN my_data ON grp.id1 = my_data.id1
  4                                   AND grp.id2 = my_data.id2
  5                                   AND grp.id3 = my_data.id3
  6                                   AND grp.id4 = my_data.id4
  7                 WHERE my_data.id1 IS NULL);

2 rows deleted

इसके अतिरिक्त, Oracle आपको केवल एक जॉइन को अपडेट करने देगा यदि कोई अस्पष्टता नहीं है कि किस आधार पंक्ति को स्टेटमेंट द्वारा एक्सेस किया जाएगा। विशेष रूप से, ओरेकल अपडेट या डिलीट का जोखिम नहीं उठाएगा (कथन विफल हो जाएगा) यदि कोई संभावना है कि शामिल होने में एक पंक्ति दो बार दिखाई दे सकती है। इस मामले में, डिलीट केवल तभी काम करेगा जब my_data(id1, id2, id3, id4).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SIN () Oracle में फंक्शन

  2. Oracle में अल्पविराम से अलग सूची के रूप में वापसी क्वेरी परिणाम

  3. एसक्यूएल:एक विशिष्ट चयन द्वारा यूनियन और ऑर्डर का उपयोग कैसे करें?

  4. Oracle में CURRENT_DATE फ़ंक्शन

  5. AWS EC2 से AWS RDS में Oracle डेटाबेस माइग्रेट करना, भाग 2