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

फ़ील्ड के सबस्ट्रिंग मानों के आधार पर दो तालिकाओं में कैसे शामिल हों?

ऐसा करने के बहुत सारे तरीके। किसी विशेष विधि को करने से पहले विभिन्न तरीकों के लिए व्याख्या योजना को देखना एक अच्छा विचार होगा। उदाहरण के लिए, यदि EMPLOYEE . पर कोई फ़ंक्शन-आधारित अनुक्रमणिका है जैसे SUBSTR(id, 2, LENGTH(id) - 1) तो आप इसे अपनी क्वेरी में उपयोग करना चाहेंगे:

SELECT e.name, i.name
  FROM employee e INNER JOIN instructor i
    ON SUBSTR(e.id, 2, LENGTH(e.id) - 1) = SUBSTR(i.id, 2, LENGTH(i.id) - 1);

एक अन्य प्रश्न यह है कि क्या id . में मान EMPLOYEE में कॉलम की लंबाई हमेशा समान होती है और INSTRUCTOR . क्या होगा यदि वे अलग-अलग लंबाई के हैं? हो सकता है कि किसी के पास दूसरे की तुलना में अधिक पैडिंग हो। साथ ही, क्या वे हमेशा अंकों होंगे एक प्रमुख u . के अलावा ? यदि ऐसा है, तो एक सुरक्षित TO_NUMBER() . का प्रयास करना सार्थक हो सकता है रूपांतरण:

SELECT e.name, i.name
  FROM employee e INNER JOIN instructor i
    ON TO_NUMBER(REGEXP_SUBSTR(e.id, '\d+$')) = TO_NUMBER(REGEXP_SUBSTR(i.id, '\d+$'));

एक और बात जिस पर आप विचार कर सकते हैं, हालांकि -- क्या प्रमुख u . का कोई कारण है? EMPLOYEE . में id कॉलम? क्या अन्य प्रमुख पात्र हो सकते हैं? क्या अग्रणी u . है कुछ के लिए खड़े हो जाओ (पहले सामान्य रूप का उल्लंघन करना, लेकिन ऐसा होता है)?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सी # में ओरेकल फ़ंक्शन से अनुक्रम वापसी तालिका से बाहर निकलने में त्रुटि जहां फ़ंक्शन SQL सर्वर पर dblink का उपयोग करता है

  2. Oracle:महीने के हिसाब से विभाजन तालिका

  3. JDBC का उपयोग करते समय MySQL में Oracle के REF CURSOR के बराबर क्या है?

  4. ओरेकल से क्रिस्टल रिपोर्ट के लिए कॉलिंग प्रक्रिया

  5. Oracle के लिए मुफ्त डेस्कटॉप क्लाइंट?