Jestem nowicjuszem i chcę sortować kolumny typu varchar. Aby wyjaśnić problem zz poniżej przykład:Alfanumeryczne sortowanie wrażliwe na wielkość liter w postgresie
nazwa tabeli: testsorting
order name
1 b
2 B
3 a
4 a1
5 a11
6 a2
7 a20
8 A
9 a19
wielkość liter sortowania (który jest domyślny w PostgreSQL) daje:
select name from testsorting order by name;
A
B
a
a1
a11
a19
a2
a20
b
przypadek in- wrażliwe sortowanie daje:
wybierz nazwę z testortortingu przez UPPER (imię i nazwisko);
A
a
a1
a11
a19
a2
a20
B
b
jak mogę uczynić przypadek alfanumeryczny wrażliwej sortowanie PostgreSQL dostać poniżej celu:
a
A
a1
a2
a11
a19
a20
b
B
ja przyzwyczajenie przeszkadza rozkaz kapitału lub małymi literami, ale kolejność powinna być " aAbB "lub" AaBb "i nie powinno być" ABab "
Proszę zasugerować, jeśli masz jakieś rozwiązanie tego postgresu.
Dzięki Michał. Sprawdziłem psql -l, ale nie pokazałem mi skonfigurowanego locale. Użycie COLLATE "pl_PL" w SELECT działało i sortowało listę w przypadku, gdy jest wrażliwa, ale problem nadal występuje z alfanumerycznym a "a2" jest wyświetlany po "a11" i "a19". masz na myśli to, że używając właściwego COLLATE rozwiążesz alfanumeryczne sortowanie? – akhi
Zobacz moją zmienioną odpowiedź –