sql >> Database >  >> RDS >> Oracle

Ampersand (&)-teken wordt genegeerd in Oracle ORDER BY

Het is het effect van taalkundige 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

Het maakt wel uit in welke taal je sorteert. Sommige karakters hebben verschillende waarden, afhankelijk van hun taal. Met binair sorteer je met de ascii-waarden.



  1. Hoe maak ik een externe sleutel in SQL Server?

  2. Hoe rijen met HTML-tabel te sorteren die worden aangeroepen vanuit MySQL

  3. LAGER LIKE vs iLIKE

  4. Hoe kan ik verbinding maken met MySQL vanuit Windows Forms?