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

Oracle:अद्यतन खंड के साथ CTE का उपयोग करना

खैर, यह इस बारे में नहीं है कि आप इसे कर सकते हैं या नहीं। यह इस बारे में है कि आपको इसे करने की आवश्यकता है या नहीं। आपकी क्वेरी में मुझे कोई फ़िल्टर मानदंड नहीं दिख रहा है। आप सभी पंक्तियों को अपडेट करना चाहते हैं? मुझे CTE . की आवश्यकता नहीं दिख रही है आपके मामले में।

आपको CTE . की आवश्यकता कब पड़ती है , यानी a उप-क्वेरी फैक्टरिंग विधि के रूप में क्लॉज के साथ जब भी आपके पास ऐसा परिदृश्य होता है जहां उप-क्वेरी को कई बार निष्पादित किया जाता है। आप यह सुनिश्चित करने के लिए WITH क्लॉज का उपयोग करते हैं कि सबक्वेरी एक बार निष्पादित की जाती है, और परिणाम को एक अस्थायी तालिका के रूप में संग्रहीत किया जाता है।

हां, आप साथ . का उपयोग कर सकते हैं अद्यतन . के लिए खंड बयान।

उदाहरण के लिए,

UPDATE TABLE t
SET t.column1, t.column2 = (SELECT column1, column2 FROM 
                                       (
                                        WITH cte AS(
                                   SELECT ... FROM another_table
                                                 )
                                         SELECT * FROM cte
                                        )

आप एक MERGE . का उपयोग कर सकते हैं कथन उपयोग करना साथ खंड।

उदाहरण के लिए,

SQL> MERGE INTO emp e USING
  2  (WITH average AS
  3    (SELECT deptno, AVG(sal) avg_sal FROM emp group by deptno)
  4  SELECT * FROM average
  5  ) u
  6  ON (e.deptno = u.deptno)
  7  WHEN MATCHED THEN
  8  UPDATE SET e.sal      =
  9    CASE
 10      WHEN e.sal <= u.avg_sal
 11      THEN e.sal * 1.05
 12      ELSE e.sal * 1.03
 13    END
 14  /

14 rows merged.

SQL>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ASP.NET वेबसाइट को ODP.NET के साथ परिनियोजित करना

  2. RMAN का उपयोग करके डेटाबेस को कैसे पुनर्प्राप्त करें

  3. PL/SQL प्रक्रिया में डेटाबेस तालिका बनाना

  4. मैं jdbc url के साथ कनेक्शन स्ट्रिंग का उपयोग कैसे कर सकता हूं?

  5. Oracle UCP, C3P0 और HikariCP की तुलना