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

Karakter Ampersand (&) diabaikan di Oracle ORDER BY

Ini adalah efek dari pengurutan linguistik:

SQL> alter session set nls_sort=binary;

Session altered.

SQL> get afiedt.buf
  1  select * from (
  2  select '&' txt from dual
  3  union
  4  select '&'||'Z' txt from dual
  5  union
  6  select '&'||'A' txt from dual
  7  union
  8  select 'P' txt from dual
  9  union
 10  select 'N' txt from dual
 11  )
 12* order by txt
SQL> /

TX
--
&
&A
&Z
N
P

SQL> alter session set nls_sort = 'Dutch';

Session altered.

SQL> get afiedt.buf
  1  select * from (
  2  select '&' txt from dual
  3  union
  4  select '&'||'Z' txt from dual
  5  union
  6  select '&'||'A' txt from dual
  7  union
  8  select 'P' txt from dual
  9  union
 10  select 'N' txt from dual
 11  )
 12* order by txt
SQL> /

TX
--
&
&A
N
P
&Z

Itu membuat perbedaan untuk bahasa apa yang Anda urutkan. Beberapa karakter memiliki nilai yang berbeda tergantung pada bahasa mereka. Dengan biner, Anda mengurutkan menggunakan nilai ascii.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kapan saya harus menyarangkan blok PL/SQL BEGIN...END?

  2. Instalasi Oracle 12c gagal mengakses lokasi sementara

  3. Pembaruan massal Oracle menggunakan ODP.NET

  4. Bagaimana cara melewati datatable sebagai input ke prosedur di C #?

  5. WHERE IN kondisi tidak menerima nilai String