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

VARCHAR2 की तुलना CHAR . से करने का सबसे अच्छा तरीका

table1.value . के रूप में कॉलम अनुक्रमित है, तो आप तुलना के लिए उसमें हेरफेर नहीं करना चाहते हैं क्योंकि इससे इंडेक्स का उपयोग होने से रोका जा सकेगा। इसलिए आपको अपने द्वारा खोजे जा रहे मान को संशोधित करना होगा:

SELECT table1.ID FROM table1 WHERE table1.VALUE = RPAD('123-45', 12)

ओरेकल उस क्वेरी के साथ पूरी तरह से करेगा जो आपने दिखाया था, और अभी भी इंडेक्स का उपयोग करेगा। और वही यदि आप तालिकाओं में शामिल हो रहे हैं, लेकिन शामिल होने के दौरान आप पैड या ट्रिम करते हैं या नहीं, यह इस बात पर निर्भर करता है कि कौन सी तालिका ड्राइवर है:

SELECT table1.ID, table2.ID
FROM table1
JOIN table2 ON table2.value = RTRIM(table1.value)
WHERE table1.VALUE = RPAD('123-45', 12)

या:

SELECT table1.ID
FROM table2
JOIN table1 ON table1.value = RPAD(table2.value, 12)



  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 JDeveloper में होस्ट-आधारित डेटाबेस कनेक्शन के बजाय शुद्ध TNSNAMES का उपयोग करना

  2. एसक्यूएल फिडल आउटपुट त्रुटि

  3. IntelliJ IDEA स्वत:पूर्ण लोअरकेस SQL

  4. PLSQL में एकाधिक पैरामीटर्स के लिए अल्पविराम से अलग की गई क्वेरी

  5. Oracle:2 तिथियों के बीच HH:MM:SS में समय अंतर की गणना करें