Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Пронумеровать записи циклически...  [new]
Bryk_Alien
Guest
Здравствуйте, уважавемые гуру SQL
Обладая несомненно гораздо б0льшими познаниями о методах и возможностях SQL,
не подскажите, реально ли решить такую задачу с помощью запроса или функций, не прибегая к курсору и временным таблицам:
Есть идентификаторы, которые могут двоиться (троиться/четвериться). Можно ли эти идентификаторы пронумеровать, но не по порядку, а как бы в в цикле: первый - второй - третий - первый - второй - третий и т.д.
Индекс Кол-во признак
1 1
2 1
111 2 1
111 2 1
3 1
4 1
222 3 2
222 3 2
222 3 2
5 1
6 1
7 1
8 1
333 2 3
333 2 3
9 1
444 3 1
444 3 1
444 3 1

---
З.Ы.
Наверное задачу можно свести к боле упрощённой... В таблице номера от 1 до 10, как вывести в два стобца:
Столбец 1: 1,2,3,4,5,6,7,8,9,10...
Столбец 2: 1,2,3,1,2,3,1,2,3,1...
20 сен 13, 13:54    [14864050]     Ответить | Цитировать Сообщить модератору
 Re: Пронумеровать записи циклически...  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
Bryk_Alien
реально ли решить такую задачу с помощью запроса или функций
Реально, но как именно - зависит от версии
20 сен 13, 13:57    [14864060]     Ответить | Цитировать Сообщить модератору
 Re: Пронумеровать записи циклически...  [new]
Glory
Member

Откуда:
Сообщений: 104751
Bryk_Alien
Можно ли эти идентификаторы пронумеровать, но не по порядку, а как бы в в цикле: первый - второй - третий - первый - второй - третий и т.д.

Слышали про целую часть и остаток при делении целых чисел ?
Так вот вам нужен остаток от деления текущего порякового номера на 3
20 сен 13, 13:57    [14864064]     Ответить | Цитировать Сообщить модератору
 Re: Пронумеровать записи циклически...  [new]
Bryk_Alien
Guest
alexeyvg
Bryk_Alien
реально ли решить такую задачу с помощью запроса или функций
Реально, но как именно - зависит от версии

SQL 2008
простите... :)
Glory
Bryk_Alien
Можно ли эти идентификаторы пронумеровать, но не по порядку, а как бы в в цикле: первый - второй - третий - первый - второй - третий и т.д.

Слышали про целую часть и остаток при делении целых чисел ?
Так вот вам нужен остаток от деления текущего порякового номера на 3

Точно! Элементарно же! Что-то такое в голове крутилось но так и не сформировалось. Спасибо! Сейчас сделаю
20 сен 13, 14:01    [14864078]     Ответить | Цитировать Сообщить модератору
 Re: Пронумеровать записи циклически...  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
Glory
Bryk_Alien
Можно ли эти идентификаторы пронумеровать, но не по порядку, а как бы в в цикле: первый - второй - третий - первый - второй - третий и т.д.

Слышали про целую часть и остаток при делении целых чисел ?
Так вот вам нужен остаток от деления текущего порякового номера на 3

ну это если дырок нет в нумерации. а так то придется перенумеровывать через row_number()
20 сен 13, 14:41    [14864206]     Ответить | Цитировать Сообщить модератору
 Re: Пронумеровать записи циклически...  [new]
Bryk_Alien
Guest
Мистер Хенки
Glory
пропущено...

Слышали про целую часть и остаток при делении целых чисел ?
Так вот вам нужен остаток от деления текущего порякового номера на 3

ну это если дырок нет в нумерации. а так то придется перенумеровывать через row_number()
Ну да, я так и переименовывал :)

Всё отлично получилось, использовал конструкцию [Поле с row_number]%3 + 1 - чудесно подошло
Ещё раз спасибо за подсказку!
20 сен 13, 16:06    [14864751]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить