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

Mengapa urutan sortir varchar Oracle tidak cocok dengan perilaku perbandingan varchar?

Petrus,

perilaku penyortiran diatur oleh NLS_SORT parameter sesi, sedangkan perilaku untuk perbandingan bergantung pada NLS_COMP parameter. Anda pasti memiliki ketidakcocokan.

Saya mendapatkan hasil yang sama seperti yang Anda lakukan dengan parameter berikut:

SQL> SELECT *
  2    FROM nls_session_parameters
  3   WHERE parameter IN ('NLS_COMP', 'NLS_SORT');

PARAMETER                      VALUE
------------------------------ ----------------------------------------
NLS_SORT                       FRENCH
NLS_COMP                       BINARY

Namun ketika keduanya dicocokkan, hasilnya konsisten:

SQL> alter session set nls_comp=LINGUISTIC;

Session altered

SQL> select * from (
  2    select '000000000000' as x from dual
  3    union
  4    select '978123456789' as x from dual
  5    union
  6    select 'B002AACD0A' as x from dual
  7  ) /*where x>'000000000000'*/ order by x;

X
------------
B002AACD0A
000000000000
978123456789

SQL> select * from (
  2    select '000000000000' as x from dual
  3    union
  4    select '978123456789' as x from dual
  5    union
  6    select 'B002AACD0A' as x from dual
  7  ) where x > '000000000000' order by x;

X
------------
978123456789



  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 PL/SQL - tip untuk output langsung/pencetakan konsol

  2. ORACLE SQL:Dapatkan semua bilangan bulat di antara dua angka

  3. Pelajari Cara Menjalankan Prosedur di Toad Untuk Oracle

  4. Buat pemicu yang memperbarui kolom di satu tabel saat kolom di tabel lain diperbarui

  5. Mengaktifkan TLS di R12.1