sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL negeert streepjes bij het bestellen

Dit komt omdat da_DK.utf8 locale definieert het op deze manier. Linux locale-bewuste hulpprogramma's, bijvoorbeeld sort zal ook zo werken.

Uw convert_to(name, 'latin1') zal breken als het een teken vindt dat niet in de tekenset Latijn 1 is, bijvoorbeeld , dus het is geen goede oplossing.

U kunt order by convert_to(name, 'SQL_ASCII') . gebruiken , die de door de landinstelling gedefinieerde sortering negeert en gewoon bytewaarden gebruikt.

Lelijke hack edit:

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

Dit sorteert eerst alles wat begint met ASCII non-letter. Dit is erg lelijk, want verder sorteren in string zou vreemd zijn, maar het kan goed genoeg voor je zijn.



  1. Hoe kan ik de tabel bijwerken als er een tabel bestaat met MySQL-info?

  2. IF... ELSE in WHERE-clausule MySQL

  3. Tabellen uit twee databases samenvoegen met codeigniter

  4. Een manier om gegevens uit een DateTime-waarde te extraheren zonder seconden