PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

PostgreSQL ignoruje myślniki podczas składania zamówienia

Dzieje się tak, ponieważ da_DK.utf8 locale definiuje to w ten sposób. Narzędzia obsługujące lokalizacje Linux, na przykład sort tak też będzie działać.

Twój convert_to(name, 'latin1') zerwie się, jeśli znajdzie znak, który nie jest w zestawie znaków Latin 1, na przykład , więc nie jest to dobre obejście.

Możesz użyć order by convert_to(name, 'SQL_ASCII') , który zignoruje sortowanie zdefiniowane lokalnie i po prostu użyje wartości bajtowych.

Brzydka edycja hackowania:

order by
  (
    ascii(name) between ascii('a') and ascii('z')
    or ascii(name) between ascii('A') and ascii('Z')
    or ascii(name)>127
  ),
  name;

To posortuje najpierw wszystko, co zaczyna się od ASCII nieliterowego. Jest to bardzo brzydkie, ponieważ dalsze sortowanie w ciągach zachowywałoby się dziwnie, ale może być dla ciebie wystarczająco dobre.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Podwybór PostgreSQL i ActiveRecord dla warunków wyścigu

  2. psycopg2 na Elastic Beanstalk - nie można wdrożyć aplikacji

  3. Implementacja Switchover/Switchback w PostgreSQL 9.3.

  4. Nie można określić typu polimorficznego, ponieważ dane wejściowe mają nieznany typ

  5. psql zwraca wartość / błąd zabija skrypt powłoki, który go wywołał?