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

Откуда:
Сообщений: 2
Добрый день.
возникла ситуация что данных в таблице очень много порядка 4 млн
при этом возможность смотреть по полям не подходит т.к. id-шников в таблице нет,
а поля не уникальны.
подскажите как можно взять
например строки с 200 по 400

функция top выбирает первые значения, если ли возможность как то по строкам выбирать не используя данные таблицы
18 янв 18, 17:49    [21117645]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать из таблицы например 5 строк но не с самого начала?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
festani,

https://technet.microsoft.com/ru-ru/library/gg699618(v=sql.110).aspx
18 янв 18, 17:51    [21117652]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать из таблицы например 5 строк но не с самого начала?  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
festani, присвоить строкам номера и взять... как-то так...
18 янв 18, 17:52    [21117655]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать из таблицы например 5 строк но не с самого начала?  [new]
Massa52
Member

Откуда:
Сообщений: 379
buser,

Нужно поле по которому можно выстраивоть записи по порядку.
Если такое поле есть, тогда задача решаема.
Такое решение предложил TaPаK.
А можно вытащить TOP 400 при Order by ASC
И потом 200 при Order By DESC.
18 янв 18, 18:19    [21117751]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать из таблицы например 5 строк но не с самого начала?  [new]
invm
Member

Откуда: Москва
Сообщений: 9351
festani
если ли возможность как то по строкам выбирать не используя данные таблицы
Как-то так:
with t as
(
 select
  *,
  row_number() over (order by (select 1)) as rn
 from
  MyTable
)
select
 *
from
 t
where
 rn between 200 and 400;

Т.к. порядок хранения строк не определен, можете получить отличный от ожидаемого результат.
18 янв 18, 18:42    [21117811]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать из таблицы например 5 строк но не с самого начала?  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
--(order by (select 1))
(order by 1/0)
18 янв 18, 19:00    [21117848]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать из таблицы например 5 строк но не с самого начала?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Руслан Дамирович
--(order by (select 1))
(order by 1/0)


да хоть ORDER BY (SELECT NULL) разницы нет, к чему это?
18 янв 18, 19:01    [21117851]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать из таблицы например 5 строк но не с самого начала?  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
TaPaK
да хоть ORDER BY (SELECT NULL) разницы нет, к чему это?

А планы говорят - есть. Кому/чему верить? Не придираюсь, чисто для развития.

К сообщению приложен файл. Размер - 32Kb
18 янв 18, 19:13    [21117875]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать из таблицы например 5 строк но не с самого начала?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Руслан Дамирович,

автор
А планы говорят - есть. Кому/чему верить? Не придираюсь, чисто для развития.

никакого развития, планы ни о чём
18 янв 18, 19:18    [21117883]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать из таблицы например 5 строк но не с самого начала?  [new]
invm
Member

Откуда: Москва
Сообщений: 9351
Руслан Дамирович,

Разница конечно есть, но настолько несущественная, что можно спокойно не обращать внимания и не смущать неокрепшие умы выражением 1/0.
18 янв 18, 19:55    [21117960]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать из таблицы например 5 строк но не с самого начала?  [new]
iap
Member

Откуда: Москва
Сообщений: 46983
ORDER BY ... OFFSET
18 янв 18, 21:14    [21118067]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать из таблицы например 5 строк но не с самого начала?  [new]
Alexander Titkin
Member

Откуда: Москва
Сообщений: 91
Или попробовать сортировать по %%physloc%%
19 янв 18, 09:27    [21118759]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить