Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / проблемы с сортировкой / 11 сообщений из 11, страница 1 из 1
17.11.2005, 12:42
    #33383822
xor1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с сортировкой
Всем привет, столкнулся я тут с такой проблемой -
чтобы поле с русскими названиями сортировалось по алфавиту использовал всегда
Код: plaintext
order by convert(name, 'WIN', 'UNICODE')
раньше проблем не возникало, но сейчас столкнулся с тем что это не работает, почему так может быть ??
вроде encoding у базы тоже WIN, версия постгреса та же...
На что стоит еще обратить внимание ?
...
Рейтинг: 0 / 0
17.11.2005, 14:59
    #33384345
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с сортировкой
xor1...На что стоит еще обратить внимание ?

дурацкий вопрос...
Базу случаем не восстанавливали последнее время ?


с уважением
(круглый)
...
Рейтинг: 0 / 0
18.11.2005, 10:38
    #33386075
xor1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с сортировкой
чего в нем дурацкого ?
нет не восстанавливали, база нормальная, недавно установленная,
есле всзять эту таблицу задампить и раздампить на другом сервере, то все соритруется отлично. и там и там линукс, postgres 7.4.7, encoding WIN
вобщем все везде одинаково.

Есле есть что, напишите по существу

Искал яндексом, нашел точно такую же проблему у человека, - ответить ему тоже никто не смог.....
...
Рейтинг: 0 / 0
18.11.2005, 10:56
    #33386174
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с сортировкой
locale ?????
...
Рейтинг: 0 / 0
18.11.2005, 11:19
    #33386271
xor1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с сортировкой
установка LC_COLLATE не помогает,
причем на втором сервере, на котором все работает как надо LC_COLLATE=C

но может я что-то не то пишу туда, как по идеи правильно должно быть ?
...
Рейтинг: 0 / 0
18.11.2005, 14:35
    #33386978
ilejn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с сортировкой
xor1
На что стоит еще обратить внимание ?

Результат работы convert двух по-разному сортирующихся строк на двух машинах, на одной из которых все хорошо, а на другой все плохо, немедленно в студию.
...
Рейтинг: 0 / 0
18.11.2005, 14:55
    #33387048
xor1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с сортировкой
Вот неправильная сортировка -

test=# select * from test;
name
------
а
б
к
д
я
о
(6 rows)

test=# select * from test order by name;
name
------
б
а
д
к
о
я
(6 rows)

test=# select * from test order by convert(name, 'WIN', 'UNICODE');
name
------
д
а
б
о
к
я
(6 rows)

а это правильная -

test=# select * from test;
name
------
а
б
к
д
я
о
(6 rows)

test=# select * from test order by name;
name
------
а
б
д
к
о
я
(6 rows)

test=# select * from test order by convert(name, 'WIN', 'UNICODE');
name
------
а
б
д
к
о
я
(6 rows)


Базы на этим машинах ставились одинаково, initdb без доп. ключей
LC_COLLATE на том сервере, на котором правильно работает стоит - C
на неправильном пробовал разные ставить... не помогает

Разница только в дистрибутивах линукса....
...
Рейтинг: 0 / 0
18.11.2005, 15:19
    #33387141
ilejn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с сортировкой
Я не вижу РЕЗУЛЬТАТОВ convert.
...
Рейтинг: 0 / 0
18.11.2005, 15:50
    #33387261
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с сортировкой
авторпричем на втором сервере, на котором все работает как надо LC_COLLATE=C


А попробуйте на том сервере, на котором не работает сортировка, сначала выставить LC_COLLATE=C, затем создать тестовую БД, и потом загрузить на нее бэкап
ИМХО при создании кластера запоминается LC_COLLATE, но мог и напутать ...
...
Рейтинг: 0 / 0
18.11.2005, 16:42
    #33387419
xor1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с сортировкой
результат convert'a

test=# select name, convert(name, 'WIN', 'UNICODE') as sname from test order by sname;
name | sname
------+-------
д | Рґ
а | Р°
б | Р±
о | Рѕ
к | Рє
я | СЏ

--

по поводу создания с другим local'ем счас пробую
...
Рейтинг: 0 / 0
18.11.2005, 16:52
    #33387453
xor1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с сортировкой
вопрос снят...
сейчас сделал тестувую базу
intdb --locale=C -E=WIN1251

все работает...

а скажите, как проверить с каким locale создана быза была, и можно ли в старой (неправильной) конвертить и сортировать ?? без пересоздания, уж очень гиморно это...
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / проблемы с сортировкой / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]