sql >> Databáze >  >> RDS >> Oracle

Znak ampersand (&) je v Oracle ORDER BY ignorován

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.



  1. Nahrávání obrázků PHP tot MySQL nefunguje

  2. Jak získat *všechno* zpět z uložené procedury pomocí JDBC

  3. Jak získat věk z pole D.O.B v MySQL?

  4. Odeslat e-mail pomocí PLSQL