Som table1.value
kolumnen är indexerad, du vill inte manipulera det för jämförelsen eftersom det skulle förhindra att indexet används. Så du måste ändra värdet du letar upp:
SELECT table1.ID FROM table1 WHERE table1.VALUE = RPAD('123-45', 12)
Oracle kommer dock att göra det implicit med frågan du visade och kommer fortfarande att använda indexet. Och samma sak om du går med i borden, men om du padderar eller trimmar under sammanfogningen beror på vilket bord som är föraren:
SELECT table1.ID, table2.ID
FROM table1
JOIN table2 ON table2.value = RTRIM(table1.value)
WHERE table1.VALUE = RPAD('123-45', 12)
Eller:
SELECT table1.ID
FROM table2
JOIN table1 ON table1.value = RPAD(table2.value, 12)