Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Cara terbaik untuk membandingkan VARCHAR2 dengan CHAR

Sebagai table1.value kolom diindeks, Anda tidak ingin memanipulasi itu untuk perbandingan karena itu akan mencegah indeks digunakan. Jadi, Anda perlu mengubah nilai yang Anda cari:

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

Oracle akan melakukannya secara implisit dengan kueri yang Anda tunjukkan, dan masih akan menggunakan indeks. Dan hal yang sama jika Anda menggabungkan tabel, tetapi apakah Anda melakukan pad atau trim selama penggabungan tergantung pada tabel mana yang menjadi driver:

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

Atau:

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. Disebabkan oleh:java.lang.ClassNotFoundException:oracle.jdbc.OracleDriver

  2. Fungsi JSON_OBJECT() di Oracle

  3. Cara menggunakan parameter SQL dalam potongan SQL markdown R

  4. Cara memesan berdasarkan ASC atau DESC yang tidak peka huruf besar-kecil, dengan DISTINCT dan UNION

  5. Bagaimana cara mendapatkan Oracle, melihat prosedur apa yang sedang berjalan?