PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Problema de ordenação do Postgres


Não tenho certeza de qual é exatamente o seu problema ou como "não funciona", por falta de detalhes em sua pergunta. Mas pelo menos dois fatores podem afetar a classificação de tal forma que você obteria resultados diferentes no MySQL e no PostgreSQL.

O primeiro é agrupamento . Em particular se você estiver jogando com 9.1 beta. A última vez que instalei o MySQL (que foi há algum tempo, eles podem ter corrigido isso desde então), estava agrupando as coisas como latin-1/swedish por padrão, vs utf-8/english para PostgreSQL.

O outro é nulo. O MySQL sempre os coloca por último se a memória servir. Por outro lado, o PostgreSQL consistentemente os coloca no final dos índices btree e, portanto, os coloca por último ao ordenar asc e primeiro ao ordenar desc. Você pode alterar esse comportamento solicitando usando nulls first/nulls last .

No seu caso particular, meu palpite é que você deseja order by rating desc nulls last , em oposição ao comportamento padrão que colocará os nulos primeiro.