Oracle
 sql >> база данни >  >> RDS >> Oracle

Най-добрият начин за сравняване на VARCHAR2 с CHAR

Като table1.value е индексирана, не искате да манипулирате това за сравнението, тъй като това би попречило на използването на индекса. Така че ще трябва да промените стойността, която търсите:

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

Oracle ще направи това имплицитно със заявката, която показахте, и пак ще използва индекса. Същото е и ако се присъединявате към масите, но дали допълвате или изрязвате по време на присъединяването зависи от това коя таблица е драйверът:

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?

  2. Някой знае ли каква техника за криптиране използва JDeveloper/SQL Developer за запазване на идентификационни данни?

  3. Имам автономен тригер, но изпълнявам само веднъж в една и съща сесия

  4. Как мога да създам таблица като избрана от друга база данни в Oracle?

  5. Няколко дяла на маса?