Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 перестановка элементов в списке  [new]
design21
Member

Откуда: Minsk
Сообщений: 59
Уважаемые форумчане, помогите придумать алгоритм для решения задачки.

есть таблица, которая содержит идентификаторы элементов (Id), порядковые номера для отображения (SortNumber ) и идентификатор группы (GroupId).
порядковые номера представляют из себя нарастающую последовательность, шаг может быть произвольный.
Идентификатор группы может отсутствовать, если он есть, то показывает, что эти элементы относятся к одной логической группе.

Id SortNumber GroupId
11 1 NULL
22 4 NULL
33 6 1
44 7 1
55 10 NULL

Нужно придумать в общем виде алгоритм для обмена местами двух элементов. Обмен местами осуществляется за счет изменения поля SortNumber, с условием, что если перемещаемый элемент является первым в группе, то надо передвинуть всю группу.

Например:
надо обменять местами элементы 33 и 11
Тогда результат должен стать примерно таким:

Id SortNumber GroupId
11 3 NULL
22 4 NULL
33 1 1
44 2 1
55 10 NULL
13 июн 11, 15:59    [10806468]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить