powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Написать запрос
10 сообщений из 10, страница 1 из 1
Написать запрос
    #39986971
Фотография vah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажите пожалуйста,

как написать запрос выводящий записи из таблицы с шагом 10 по ID?

Т.е. если ID начинается с 1 и увеличивается на 1 для каждой записи, то выводить каждую 10ю запись.

Заранее благодарен.
...
Рейтинг: 0 / 0
Написать запрос
    #39986973
ASNexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vah,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
select * from
   (
   select t.*, 
          row_number() over(order by object_id) rn
     from all_objects t
   )
where mod(rn, 10) = 1
order by object_id
...
Рейтинг: 0 / 0
Написать запрос
    #39987015
Фотография vah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASNexus,

А если в ID будут дырки (пропуски 1,3,6,7,9...),
как выбрать каждую 10ю?

Спасибо.
...
Рейтинг: 0 / 0
Написать запрос
    #39987017
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vah
ASNexus,

А если в ID будут дырки (пропуски 1,3,6,7,9...),
как выбрать каждую 10ю?

Спасибо.
предыдущий пример выполнял?
...
Рейтинг: 0 / 0
Написать запрос
    #39987019
ASNexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vah,

Приведенный запрос выдаст каждую десятую строку по порядку (1-ю, 11-ю, 21-ю и т.д.) независимо от фактических значений ID.

Если же имеется в виду, каждую 10ю по значению ID, то нужно уточнение условий: если нужно, например, выбрать ID = 1, 11, 21, и т.д., то что делать в случае, если ID = 11 нет, но есть ID = 10 и 12? А если нумерация будет начинаться не с ID = 1, а с ID = 4, например?
...
Рейтинг: 0 / 0
Написать запрос
    #39987030
Фотография vah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASNexus,

Пардон, все работает, как надо.
Вывелся первый столбец на картинке.

А можно сформировать запрос чтобы выводился результат, как на всей картинке?
...
Рейтинг: 0 / 0
Написать запрос
    #39987037
ASNexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vah,

Можно. Для моего примера добавьте в запрос
Код: plsql
1.
lead(rn, 1) over(order by rn) ID2
...
Рейтинг: 0 / 0
Написать запрос
    #39987077
Фотография vah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASNexus,

немного странновато получилось
что я не так написал?
...
Рейтинг: 0 / 0
Написать запрос
    #39987081
ASNexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vah,

Я же написал " Для моего примера добавьте в запрос", под ваш запрос нужно изменить соответственно. Вам же нужно выводить во втором столбце значения следующего ID, а не следующий порядковый номер строки, значит что?
Нужно заменить rn на ID:
Код: plsql
1.
lead(ID, 1) over(order by ID) ID2
...
Рейтинг: 0 / 0
Написать запрос
    #39987162
Фотография vah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASNexus,

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


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