powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выборка с Нумерацией строк по 200 записей
2 сообщений из 27, страница 2 из 2
Выборка с Нумерацией строк по 200 записей
    #39601138
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaffarОпять ругань по пустякам.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
declare @Num int
-------------------
set @Num = 7 -- здесь 200 или сколько хочешь
-------------------
select o.object_ID, o.Name,
IsNULL(NULLIf(row_number() over(order by o.object_ID asc) % @Num, 0), @Num) NN 
from  sys.objects o with(nolock)
order by o.object_ID asc


а этот цирк с IsNULL(NULLIf что бы +1 не сделать?
...
Рейтинг: 0 / 0
Выборка с Нумерацией строк по 200 записей
    #39601567
Jaffar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,

НО, тем не менее - ЭТО замена 0 на @NUM
Чтобы было понятнее приведу простой пример(вдруг кто-то не поймет):
если например @NUM = 7
то row_number()%@NUM - (на всякий случай % - это остаток от деления)
будет =
NN %
-----------
1 1
2 2
3 3
4 4
5 5
6 6
7 0 - вот тут то мы и меняем 0 на @NUM.
8 1
9 2
и т.д.

какие варианты замены у нас есть?
1.IsNULL(NULLIF()) - не_нужное нам число мы меняем на NULL а потом NULL меняем на нужное число.
case when A = B then C else A end - можно и так но так длиннее запись, а с учетом того,
что А - это row_number() over(order by m.ID) - это прийдется повторять 2 раза.

Но вы наверное предлагаете вот такой вариант:
Код: sql
1.
2.
3.
select ....
((row_number() over(order by o.object_ID asc)-1) % @Num  ) + 1 NN2
.....


он действительно короче - но КМК, НЕ_ПОНЯТНЕЕ.
...
Рейтинг: 0 / 0
2 сообщений из 27, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выборка с Нумерацией строк по 200 записей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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