PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Nieprawidłowe sortowanie PostgreSQL

Zachowanie sortowania tekstu (w tym char i varchar jak również text typ) zależy od aktualnego sortowania Twojego regionu.

Zobacz poprzednie, ściśle powiązane pytania:

  • Sortowanie PostgreSQL
  • https://stackoverflow.com/q/21006868/398670

Jeśli chcesz wykonać uproszczone sortowanie według wartości ASCII, zamiast poprawnie zlokalizowanego sortowania zgodnie z lokalnymi zasadami języka, możesz użyć COLLATE klauzula

select * 
from test
order by title COLLATE "C" ASC

lub globalnie zmień sortowanie bazy danych (wymaga zrzutu i ponownego załadowania lub pełnego ponownego indeksowania). W moim systemie Linux Fedora 19 otrzymuję następujące wyniki:

regress=> SHOW lc_collate;
 lc_collate  
-------------
 en_US.UTF-8
(1 row)

regress=> WITH v(title) AS (VALUES ('#a'), ('a'), ('#'), ('a#a'), ('a#')) 
          SELECT title FROM v ORDER BY title ASC;
 title 
-------
 #
 a
 #a
 a#
 a#a
(5 rows)

regress=> WITH v(title) AS (VALUES ('#a'), ('a'), ('#'), ('a#a'), ('a#')) 
          SELECT title FROM v ORDER BY title COLLATE "C" ASC;
 title 
-------
 #
 #a
 a
 a#
 a#a
(5 rows)

PostgreSQL korzysta z obsługi sortowania Twojego systemu operacyjnego, więc możliwe jest, że wyniki będą się nieznacznie różnić w zależności od hosta. W szczególności, przynajmniej niektóre wersje Mac OS X znacząco zepsuły obsługę sortowania Unicode.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. serial w postgresie jest zwiększany mimo że dodałem na konflikcie nic nie rób

  2. Jaki jest najszybszy sposób skrócenia znaczników czasu do 5 minut w Postgresie?

  3. „OSTRZEŻENIE:znaleziono niezgodność między sl_table a pg_class”. w Słonym-I

  4. Mountain Lion Postgres nie mógł się połączyć

  5. Jak odczytać zawartość pliku .sql do skryptu R, aby uruchomić zapytanie?