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

Masalah penyortiran postgres

Tidak yakin apa masalah Anda sebenarnya atau bagaimana "tidak berfungsi", karena kurangnya detail dalam pertanyaan Anda. Tetapi setidaknya ada dua faktor yang dapat memengaruhi penyortiran sedemikian rupa sehingga Anda akan mendapatkan hasil yang berbeda di MySQL dan PostgreSQL.

Yang pertama adalah kolasi . Khususnya jika Anda bermain dengan 9.1 beta. Terakhir saya menginstal MySQL (yang beberapa waktu lalu, jadi mereka mungkin telah memperbaiki ini sejak), itu menyusun hal-hal sebagai latin-1/swedia secara default, vs utf-8/english untuk PostgreSQL.

Yang lainnya adalah nol. MySQL selalu menempatkan ini terakhir jika memori berfungsi. Sebaliknya, PostgreSQL secara konsisten menempatkannya di akhir indeks btree, dan dengan demikian menempatkannya terakhir saat memesan asc dan pertama saat memesan desc. Anda dapat mengubah perilaku ini dengan memesan menggunakan nulls first/nulls last .

Dalam kasus khusus Anda, tebakan saya adalah Anda ingin order by rating desc nulls last , sebagai kebalikan dari perilaku default yang akan menempatkan null terlebih dahulu.




  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 SELECT* FROM table WHERE column-varchar==string-example?

  2. Tandai rentang tanggal yang tidak bersebelahan

  3. Apa penyebab PGError:FATAL:memutuskan koneksi karena perintah administrator di heroku?

  4. Postgres:bagaimana Anda membulatkan stempel waktu ke atas atau ke bawah ke menit terdekat?

  5. Ubah Tanggal Julian menjadi tanggal Kalender di Postgresql