powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / UTF8: не понимаю результатов сортировки кириллицы при collate unicode_CI
2 сообщений из 2, страница 1 из 1
UTF8: не понимаю результатов сортировки кириллицы при collate unicode_CI
    #38579353
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi all

Что-то опять не въеду в это дело... :-)
На консоли сервера:
locale output
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
- ввожу:
Код: plaintext
SQL> create database 'tmp20140305.fdb'; commit; quit;
Далее делаю коннект с чарсетом = UTF8:
Код: plaintext
1.
2.
$ /opt/fb30trnk/bin/isql localhost/3333:/var/db/fb30/tmp20140305.fdb -ch utf8
Database:  localhost/3333:/var/db/fb30/tmp20140305.fdb

Проверяю сразу свой коннект:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SQL> set list on; select a.mon$character_set_id,c.* from mon$attachments a join rdb$character_sets c on a.mon$character_set_id=c.rdb$character_set_id where mon$attachment_id=current_connection; set list off;

MON$CHARACTER_SET_ID            4
 RDB$CHARACTER_SET_NAME          UTF8                                                                                                
RDB$FORM_OF_USE                 <null>
RDB$NUMBER_OF_CHARACTERS        <null>
 RDB$DEFAULT_COLLATE_NAME        UTF8                                                                                                
RDB$CHARACTER_SET_ID            4
RDB$SYSTEM_FLAG                 1
RDB$DESCRIPTION                 <null>
RDB$FUNCTION_NAME               <null>
RDB$BYTES_PER_CHARACTER         4
RDB$SECURITY_CLASS              SQL$156                                                                                            
RDB$OWNER_NAME                  SYSDBA            

И затем делаю вот это:
var 1.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SQL> with d as(
CON> select 1 id,cast('ЙЦУКЕНГ' as varchar(12) character set utf8) s from rdb$database union all
CON> select 2,   cast('йцукенг' as varchar(12) character set utf8)   from rdb$database union all
CON> select 3,   cast('ЙцУкЕнГ' as varchar(12) character set utf8)   from rdb$database)
CON> select * from d order by s;

          ID S
============ ============
           1 ЙЦУКЕНГ
           3 ЙцУкЕнГ
           2 йцукенг
/* этот результат понятен: заглавные буквы должны быть "выше" */

var. 2
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SQL> with d as(
CON> select 1 id,cast('ЙЦУКЕНГ' as varchar(12) character set utf8) s from rdb$database union all
CON> select 2,   cast('йцукенг' as varchar(12) character set utf8)   from rdb$database union all
CON> select 3,   cast('ЙцУкЕнГ' as varchar(12) character set utf8)   from rdb$database)
CON> select * from d order by s  collate unicode_ci ;

          ID S
============ ============
           2 йцукенг
           3 ЙцУкЕнГ
           1 ЙЦУКЕНГ

Объясните кто-нить, с какого будуна он перевернул результат при указании кляузы collate unicode _CI ??

ЗЫ. doc/README.intl читал, ясности не получил.
...
Рейтинг: 0 / 0
UTF8: не понимаю результатов сортировки кириллицы при collate unicode_CI
    #38579432
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидОбъясните кто-нить, с какого будуна он перевернул результат при указании
кляузы collate unicode_CI ??
Особенности алгоритма сортировки. Порядок следования записей с совпадающими ключами в
общем случае не определён, а в частном, как видишь, обратен входному.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / UTF8: не понимаю результатов сортировки кириллицы при collate unicode_CI
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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