sql >> Databáze >  >> RDS >> PostgreSQL

Problém s řazením Postgres

Nejste si jisti, jaký je váš problém přesně nebo jak to „nefunguje“, protože ve vaší otázce nejsou podrobnosti. Ale minimálně dva faktory mohou ovlivnit řazení takovým způsobem, že byste v MySQL a PostgreSQL získali odlišné výsledky.

První je kolování . Zejména pokud hrajete s 9.1 beta. Naposledy jsem nainstaloval MySQL (což bylo před chvílí, takže to možná od té doby opravili), ve výchozím nastavení to porovnávalo věci jako latin-1/švédština, vs utf-8/angličtina pro PostgreSQL.

Druhý je nulový. MySQL je vždy umístí na poslední místo, pokud paměť slouží. Naproti tomu PostgreSQL je důsledně umisťuje na konec indexů btree, a proto je umisťuje na poslední místo při objednávání asc a na první místo při objednávání desc. Toto chování můžete změnit objednáním pomocí nulls first/nulls last .

Ve vašem konkrétním případě odhaduji, že chcete order by rating desc nulls last , na rozdíl od výchozího chování, které na první místo umístí hodnoty null.




  1. Úvod do SQL Server 2017

  2. převést můj dotaz SQL na queryexpression nebo fetchxml v crm

  3. Oznámení ClusterControl 1.4.1 - vydání ProxySQL

  4. SQL dotaz pro vrácení řádku, i když nebyl nalezen, s alespoň v parametrech