Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Firebird, Interbase > Проблема с ORDER BY, не правильно сортирует


Автор: Reptile 13.11.2007, 12:02
Здравствуйте уважаемые винградовцы .
Есть запрос:
Код

SELECT KOD,OBV FROM ST_obv ORDER BY CAST(KOD AS DECIMAL(3,3)),OBV

База данных создавалась с указанием кодировки cp1251
Так вот поле OBV может содержать  русские, латинские и украинские символы.
Проблема в том что по украинским он не сортирует, а как заставить пока не знаю.
Помогите чем можете.

Автор: Reptile 13.11.2007, 16:41
Проблему решил тем что пересоздал таблицу и поле OBV так:
Код

OBV_T            VARCHAR(10000)  CHARACTER SET WIN1251 COLLATE WIN1251_UA

После этого сортирует правильно.

Автор: Akella 16.11.2007, 18:21
можно без пересоздания таблицы сортировать, т.е. COLLATE WIN1251_UA использовать  непосредственно в селекте
точно не помню, помоему так
Код

SELECT KOD,OBV FROM ST_obv ORDER BY CAST(KOD AS DECIMAL(3,3)), OBV COLLATE WIN1251_UA

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)