PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

PostgreSQL mengabaikan tanda hubung saat memesan

Ini karena da_DK.utf8 locale mendefinisikannya dengan cara ini. Utilitas sadar lokal Linux, misalnya sort juga akan bekerja seperti ini.

convert_to(name, 'latin1') Your Anda akan pecah jika menemukan karakter yang tidak dalam set karakter 1 Latin, misalnya , jadi ini bukan solusi yang baik.

Anda dapat menggunakan order by convert_to(name, 'SQL_ASCII') , yang akan mengabaikan pengurutan yang ditentukan lokal dan hanya menggunakan nilai byte.

Hasil edit yang jelek:

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

Ini akan mengurutkan terlebih dahulu apa pun yang dimulai dengan non-huruf ASCII. Ini sangat buruk, karena menyortir lebih jauh dalam string akan berperilaku aneh, tetapi itu bisa cukup baik untuk Anda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres, perbarui, dan kunci pemesanan

  2. Mengonversi Kumpulan Hasil dari SQL Array ke Array of Strings

  3. Membuat UUID di Postgres untuk pernyataan Sisipkan?

  4. Postgres COPY TO NULL integer

  5. Apache Felix tidak dapat mengakses Postgres JDBC