Oracle
 sql >> база данни >  >> RDS >> Oracle

Символът амперсанд (&) се игнорира в Oracle ORDER BY

Това е ефектът от лингвистичното сортиране:

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

Има разлика на какъв език сортирате. Някои знаци имат различни стойности в зависимост от техния език. С двоичния файл сортирате, като използвате ascii стойностите.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изобразя дървовидна структура в хибернация с множество таблици?

  2. Сравняване на стойности, разделени със запетая, от две колони на две различни таблици

  3. Конфигуриране на Oracle OCI8 за Windows 64 bit

  4. Работата на Oracle Enterprise Manager е прекъсната

  5. Как да добавя интервал пред моя номер, ако е едноцифрен?