powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Буквенно-цифровая сортировка
11 сообщений из 11, страница 1 из 1
Буквенно-цифровая сортировка
    #39658045
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сортируется так:
T10
T100
T11

Нужно так:
T10
T11
T100

Как правильно сделать?
...
Рейтинг: 0 / 0
Буквенно-цифровая сортировка
    #39658046
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Раздели строку на символьные и числовые данные и отсортируй.
...
Рейтинг: 0 / 0
Буквенно-цифровая сортировка
    #39658058
NickDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашёл: https://firebirdsql.org/rlsnotesh/rnfb25-intl-other.html
Код: sql
1.
create collation unicode_num for utf8 from unicode 'NUMERIC-SORT=1';
...
Рейтинг: 0 / 0
Буквенно-цифровая сортировка
    #39658128
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee,

И чё, работает?
...
Рейтинг: 0 / 0
Буквенно-цифровая сортировка
    #39658147
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickDee,

можно извратиться через "order by cast...". Если строка вменяемая.
...
Рейтинг: 0 / 0
Буквенно-цифровая сортировка
    #39658274
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryNickDee,

И чё, работает?

И почему бы ей не работать?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
create collation unicode_num for utf8 from unicode 'NUMERIC-SORT=1';

select cast(num as varchar(20) character set utf8) collate unicode_num
from (select 'T10' num from rdb$database
        union all
      select 'T100' from rdb$database
        union all
      select 'T11' from rdb$database)
order by 1
...
Рейтинг: 0 / 0
Буквенно-цифровая сортировка
    #39658326
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк ЕвгенийИ почему бы ей не работать?Никогда не пользовался, не было нужды в извращениях. Надо описание почитать.
Похоже, там особо неестественный интеллект включен, раз вытворяет такое:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
create collation unicode_num for utf8 from unicode 'NUMERIC-SORT=1';

select cast(num as varchar(20) character set utf8) collate unicode_num
from (select 'T11T' num from rdb$database
        union all
      select 'T100T' from rdb$database
        union all
      select 'T10T' from rdb$database)
order by 1;
...
Рейтинг: 0 / 0
Буквенно-цифровая сортировка
    #39658352
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery,

Никого интеллекта. У меня БД в win1251, а пользовательские сортировки работают только для utf8. Потому и cast.
...
Рейтинг: 0 / 0
Буквенно-цифровая сортировка
    #39658385
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений,

Не о кодировках речь, а о реализации NUMERIC-SORT.
Если ты посмотришь внимательно на мою версию примера, ЧТО именно он сортирует...
...
Рейтинг: 0 / 0
Буквенно-цифровая сортировка
    #39658448
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery,

Цитата из документации
документацияОбрабатывает непрерывные группы десятичных цифр в строке как атомарные модули и сортирует их в числовой последовательности (известна как естественная сортировка).
...
Рейтинг: 0 / 0
Буквенно-цифровая сортировка
    #39658503
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений,

Во-во.
Надо определить количество цифровых групп и сопоставлять, какая там по счёту сейчас сравнивается.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Буквенно-цифровая сортировка
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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