sql >> Database teknologi >  >> RDS >> Oracle

A-tegn (&) bliver ignoreret i Oracle ORDER BY

Det er effekten af ​​sproglig sortering:

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

Det gør en forskel for hvilket sprog du sorterer. Nogle karakterer har forskellige værdier afhængigt af deres sprog. Med binær sorterer du ved at bruge ascii-værdierne.



  1. MySqlConnectionStringBuilder - Forbind med certifikater

  2. regulært udtryk for linjeadskilte forskellige lange ord

  3. indtastning af tabelnavn som plsql-parameter

  4. Sådan bruger du python mysqldb til at indsætte mange rækker på én gang