PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Ordinamento Postgres dei caratteri UTF-8

Usa la fascicolazione "C":

SELECT w."translated" 
FROM "words" AS w 
ORDER BY w."translated" collate "C" desc limit 10; 

Vedi anche Comportamento diverso nella clausola "order by":Oracle vs. PostgreSQL

La query può essere problematica quando si utilizza ORM. La soluzione potrebbe consistere nel ricreare il database con LC_COLLATE = C opzione, come suggerito dall'OP nel commento. C'è un'altra opzione:cambia le regole di confronto per una singola colonna:

ALTER TABLE "words" ALTER COLUMN "translated" TYPE text COLLATE "C";