sql >> Database >  >> RDS >> Oracle

De beste manier om VARCHAR2 te vergelijken met CHAR

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)



  1. 5 manieren om het gegevenstype van een kolom in SQLite te controleren

  2. Eenvoudigste manier om een ​​MySQL-database te kopiëren?

  3. SQL UNION ALL om duplicaten te elimineren

  4. BOOL-waarde invoegen in MySQL-database