Als de table1.value
kolom is geïndexeerd, wilt u dat niet manipuleren voor de vergelijking, omdat dat zou voorkomen dat de index wordt gebruikt. U moet dus de waarde die u zoekt aanpassen:
SELECT table1.ID FROM table1 WHERE table1.VALUE = RPAD('123-45', 12)
Oracle zal dat impliciet doen met de door u getoonde query en zal nog steeds de index gebruiken. En hetzelfde als je aan de tafels meedoet, maar of je tijdens het samenvoegen opvult of trimt, hangt af van welke tafel de bestuurder is:
SELECT table1.ID, table2.ID
FROM table1
JOIN table2 ON table2.value = RTRIM(table1.value)
WHERE table1.VALUE = RPAD('123-45', 12)
Of:
SELECT table1.ID
FROM table2
JOIN table1 ON table1.value = RPAD(table2.value, 12)