Порядок сортировки, который вы описываете, является стандартным в большинстве языков.
Попробуйте сами:
SELECT regexp_split_to_table('D d a A c b', ' ') ORDER BY 1;
Когда вы инициализируете кластер БД с помощью initdb , вы можете выбрать локаль с помощью --locale=some_locale
. В моем случае это --locale=de_AT.UTF-8
. Если вы ничего не указали, языковой стандарт унаследован от среды - будет использоваться ваш текущий системный языковой стандарт.
База данных шаблонов кластера будет настроена на эту локаль. Когда вы создаете новую базу данных, она наследует настройки из шаблона. Обычно вам не нужно беспокоиться о чем-либо , все это просто работает.
Подробнее читайте в главе СОЗДАТЬ БАЗУ ДАННЫХ .
Если вы хотите ускорить текстовый поиск по индексам, обязательно прочитайте также о классах операторов .
Все ссылки на версию 8.4, как вы специально об этом просили.
В PostgreSQL 9.1 или более поздней версии имеется поддержка сортировки , которая позволяет более гибко использовать параметры сортировки:
Функция сортировки позволяет указать порядок сортировки и символ
классификационное поведение данных для каждого столбца или даже для каждой операции.
Это смягчает ограничение, что LC_COLLATE и LC_CTYPE
настройки базы данных не могут быть изменены после ее создания.