Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Das kaufmännische Und-Zeichen (&) wird in Oracle ORDER BY ignoriert

Es ist der Effekt der sprachlichen Sortierung:

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

Es macht einen Unterschied, nach welcher Sprache Sie sortieren. Einige Zeichen haben je nach Sprache unterschiedliche Werte. Bei binär sortieren Sie nach den ASCII-Werten.