Je to účinek jazykového třídění:
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
Záleží na tom, jaký jazyk řadíte. Některé znaky mají různé hodnoty v závislosti na jejich jazyce. S binárním řazením pomocí hodnot ASCII.