powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Вопрос по сравнению строк...
2 сообщений из 2, страница 1 из 1
Вопрос по сравнению строк...
    #34260868
Alexey Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не подскажут ли знатоки DB2 почему например строка '@' меньше чем '4' ?

select * from table (values ('@'), ('4'), ('1')) a order by 1

----
@
1
4
----

а в java при сравнеии "@" и "4", "@" - больше.

DB2 8.2.6 Express-C

P.S. мы это обошли путем отказа от "@", стали юзать $ который одинаково сравнивается и в DB и в JAVA но все же интересно... наверное все дело в каких-нить коловых страницах...
...
Рейтинг: 0 / 0
Вопрос по сравнению строк...
    #34261143
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в разных режимах сортировки.
Одно сортирует по лингвистическим правилам для установленной языковой локали, другое - по ASCII коду символа.
Как пример (правда из оракла):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
-- Режим бинарной сортировки:
-- Тестовые данные:
with 
   sqf_sort_test as 
     (
        select '@' str from dual union all
        select '1' str from dual union all
        select '4' str from dual union all
        select 'А' str from dual union all
        select 'Ё' str from dual
     )
-- Конец тестовых данных.
--
-- Непосредственно сам запрос:
select str
  from sqf_sort_test
 order by nlssort(str, 'NLS_SORT = BINARY') -- Явно указываем бинарный режим

Query finished, retrieving results...

STR
---
 1 
 4 
@
Ё
А

 5  row(s) retrieved

------------------------------------------

-- Режим лингвистической сортировки с учетом правил русского языка:
-- Тестовые данные:
with 
   sqf_sort_test as 
     (
        select '@' str from dual union all
        select '1' str from dual union all
        select '4' str from dual union all
        select 'А' str from dual union all
        select 'Ё' str from dual
     )
-- Конец тестовых данных.
--
-- Непосредственно сам запрос:     
select str
  from sqf_sort_test
order by nlssort(str, 'NLS_SORT = RUSSIAN') -- Явно указываем лингвистический режим по правилам русского языка

Query finished, retrieving results...

STR
---
@
А
Ё
 1 
 4 

 5  row(s) retrieved


------------------------------------------

-- Режим лингвистической сортировки с учетом правил немецкого языка:
-- Тестовые данные:
with 
   sqf_sort_test as 
     (
        select '@' str from dual union all
        select '1' str from dual union all
        select '4' str from dual union all
        select 'А' str from dual union all
        select 'Ё' str from dual
     )
-- Конец тестовых данных.
--
-- Непосредственно сам запрос:     
select str
  from sqf_sort_test
order by nlssort(str, 'NLS_SORT = GERMAN') -- Явно указываем лингвистический режим по правилам немецкого языка

Query finished, retrieving results...

STR
---
@
Ё
А
 1 
 4 

 5  row(s) retrieved
Заметь, на одних и тех же данных получили три разных варианта сортировки...
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Вопрос по сравнению строк...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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