powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Сортировка (order by)
2 сообщений из 2, страница 1 из 1
Сортировка (order by)
    #37298517
H.A.M.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую. Вот такой вопрос на примере для DB2:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create db FOO using codeset UTF- 8  territory en_US collate using IDENTITY pagesize  32  K
connect to FOO
create table test(id decimal( 10 ) not null primary key, val vargraphic( 10 ))
insert into test values( 1 , x'28290D')
insert into test values( 2 , x'2829')
commit
select id, hex(val) hval from test order by val, id

ID           HVAL
------------ ----------------------------------------
           1 . 00280029000D
           2 .  00280029 

   2  record(s) selected.

В то же время аналогичный order by для Oracle:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
create table test(id int primary key, val varchar2( 10 ))
insert into test values( 1 , chr( 28 ) || chr( 29 ) || chr(0D))
insert into test values( 2 , chr( 28 ) || chr( 29 ))
commit
select id, dump(val,  16 ) hval from test order by val, id

ID	HVAL
---------------------------
 2 	Typ= 1  Len= 2 : 1c,1d
 1 	Typ= 1  Len= 3 : 1c,1d, 0 

select * from nls_session_parameters where parameter = 'NLS_SORT'
PARAMETER                      VALUE                                   
------------------------------ ----------------------------------------
NLS_SORT                       BINARY                                  


Лично я считаю BINARY сортировку Oracle более правильной (или нет?). Можно ли как то повлиять на DB2 и заставить ее сортировать так же?

Спасибо

Пад'ехалi, лазер уключылi, i кабздец!
...
Рейтинг: 0 / 0
Сортировка (order by)
    #37298827
H.A.M.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сам спросил... сам ответил. Попробовал несколько collations:

collate using IDENTITY:
x'00280029000D' < x'00280029'

IDENTITY_16BIT:
x'00280029000D' < x'00280029'

collate using UCA400_NO:
x'00280029000D' > x'00280029'

collate using UCA400_LSK:
x'00280029000D' > x'00280029'

Вроде как UCA400_NO (Unicode Standard version 4.0.0 with normalization implicitly set to ON) подходит.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Сортировка (order by)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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