sql >> Databasteknik >  >> RDS >> Oracle

A-tecken (&) ignoreras i Oracle ORDER BY

Det är effekten av språklig 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 skillnad för vilket språk du sorterar. Vissa karaktärer har olika värden beroende på språk. Med binär sorterar du med ascii-värdena.



  1. Hur viktiga är begränsningar som NOT NULL och FOREIGN KEY om jag alltid ska kontrollera min databasinmatning med PHP?

  2. IRI-Windocks Test Database Repository

  3. Hur man skapar en tabell med flera främmande nycklar och inte blir förvirrad

  4. oracle jdbc drivrutin version galenskap