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

यह क्वेरी Oracle में मर्ज कार्टेशियन जॉइन का कारण क्यों बनेगी?

समस्या यह है कि Oracle यह नहीं जानता है कि get_fiscal_year_start_date (SYSDATE) एक एकल परिणाम देता है। तो यह मान रहा है कि यह बहुत सारी पंक्तियाँ उत्पन्न करेगा।

जाहिर है कि मेरे पास परीक्षण हार्नेस नहीं है, लेकिन आपकी क्वेरी के इस संस्करण को मर्ज कार्टेशियन जॉइन को हटा देना चाहिए।

SELECT RTRIM (position) AS "POSITION", 
.  // Other fields 
. 
. 
FROM schema.table x 
     , ( select get_fiscal_year_start_date (SYSDATE) as fiscal_year 
         from dual ) fy
WHERE hours > 0  
AND pay = 'RGW' 
AND NOT EXISTS( SELECT position 
                FROM  schema.table2 y 
                where y.date = fy.fiscal_year
                AND y.position = x.position ) 

Oracle जानता है कि DUAL की एक पंक्ति है, और इसलिए उप-क्वेरी एक मान लौटाएगी।




  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 में पहचान कॉलम को कैसे रीसेट करें

  2. Oracle में टाइमस्टैम्प कैसे डालें?

  3. Oracle - मौजूद न होने पर ही एक इंडेक्स बनाएं

  4. Oracle 10g डेटाबेस को Microsoft SQL 2008 R2 में माइग्रेट करने के लिए सर्वोत्तम अभ्यास क्या हैं? एप्लिकेशन हाइबरनेट का उपयोग कर रहा है

  5. Oracle डेटाबेस में एक अपवाद चर का उपयोग करके उपयोगकर्ता-परिभाषित अपवाद को कैसे घोषित करें?