powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сортировка чисел с разделителями в текстовом поле
6 сообщений из 6, страница 1 из 1
Сортировка чисел с разделителями в текстовом поле
    #39972093
Anton_1988
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток, форумчане.

авторИсходные данные:

MS SQl server
Таблица с иерархическими данными, связи в которой обеспечены двумя полями: id и id_parent.
id_parent содержит id родителя.

Есть текстовое поле, где хранятся порядковые номера вида "1.1.2.3.". Вопрос в том как отсортировать таблицу по возрастанию этих номеров, если они воспринимаются как текст.

Пример

НЕПРАВИЛЬНО:

автор1.
1.1.
10.1.
2.1.

ПРАВИЛЬНО

автор1.
1.1.
1.1.1.
2.1.
...
10.1.
10.2.
Рекурсивный запрос по 12тыс. строк выполняется более 5 минут и как действующее решение не подходит
...
Рейтинг: 0 / 0
Сортировка чисел с разделителями в текстовом поле
    #39972126
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton_1988
Рекурсивный запрос по 12тыс. строк выполняется более 5 минут и как действующее решение не подходит
Даже не представляю, как тут можно использовать рекурсивный алгоритм :-)

Если количество уровней не более 4-х, то PARSENAME
Если больше, то, наверное, только строковые функции. Ну или извращаться с получением множеств, и потом PIVOT
...
Рейтинг: 0 / 0
Сортировка чисел с разделителями в текстовом поле
    #39972133
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton_1988,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare @t table (id int identity(1, 1), val varchar(255));

insert into @t values 
('1.'),
('1.1.'),
('1.1.1.'),
('2.1.'),
('10.1.'),
('10.2.');

select * from @t order by val

select * from @t order by cast('/'+replace(val, '.', '/') as hierarchyid)
...
Рейтинг: 0 / 0
Сортировка чисел с разделителями в текстовом поле
    #39972211
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тупым задачам тупые решения.
Ставьте нужное число ведущих нулей в каждой позиции и сортируйте штатно.
...
Рейтинг: 0 / 0
Сортировка чисел с разделителями в текстовом поле
    #39972216
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff,

Точно, hierarchyid же есть.
Может, с PARSENAME будет быстрее, но если уровней больше 4-х, то PARSENAME - лучшее решение.
...
Рейтинг: 0 / 0
Сортировка чисел с разделителями в текстовом поле
    #39974169
Anton_1988
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff,
Идеально! То что нужно. Спасибо
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сортировка чисел с разделителями в текстовом поле
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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