ऐसा करने के बहुत सारे तरीके। किसी विशेष विधि को करने से पहले विभिन्न तरीकों के लिए व्याख्या योजना को देखना एक अच्छा विचार होगा। उदाहरण के लिए, यदि 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
. है कुछ के लिए खड़े हो जाओ (पहले सामान्य रूप का उल्लंघन करना, लेकिन ऐसा होता है)?