Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Выбор определенного кол-ва записей Select запросом
|
|||
|---|---|---|---|
|
#18+
Люди добрые!, подскажите как в результате выполнения селекта получить набор записей, например с 50й по 60ю ?? Например по 60 так : select TOP 60 mypole1 from mytable1 а с 50й как ??? или как тут можно выкрутиться ??? ???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2001, 14:06 |
|
||
|
Выбор определенного кол-ва записей Select запросом
|
|||
|---|---|---|---|
|
#18+
Если есть поле(я) с уникальным идентификатором, например поле с именем REC_ID то просто: select * from TABLE where REC_ID >= 50 and REC_ID <=60 Если же нет, то можно курсором. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2001, 14:12 |
|
||
|
Выбор определенного кол-ва записей Select запросом
|
|||
|---|---|---|---|
|
#18+
Ну, допустим поле ID есть, но там помимо всего есть еще и запись ORDER BY по нескольким полям, поэтому так к сожалению не получиться А курсором как?. (в результате мне надо рекордсет передать в VB) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2001, 14:31 |
|
||
|
Выбор определенного кол-ва записей Select запросом
|
|||
|---|---|---|---|
|
#18+
как-то так select TOP 11 mypole1 from mytable1 where id >=(select max(id) from (select top 50 id from mytable1 order by id) as s) изврат конечно и с курсором будет изврат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2001, 14:49 |
|
||
|
Выбор определенного кол-ва записей Select запросом
|
|||
|---|---|---|---|
|
#18+
Я бы предложил следующее. Коли там есть уникальное поле, пределы выборки QntStart и QntEnd то: declare @TempTable table(ID dec(16), .....) select top QntEnd * into @TempTable from tTable order by <условия сортировки> delete @TempTable where ID in (select top QntStart * from @TempTable order by <условия сортировки> select * from @TempTable order by <условия сортировки> Возможно это будет даже быстрее курсоров, если сортировка несложная. А при большом количестве записей, уж точно быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2001, 15:15 |
|
||
|
Выбор определенного кол-ва записей Select запросом
|
|||
|---|---|---|---|
|
#18+
menia toshe etot voproc interesyet ... pocovetyite chto-nibyd" pls !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2001, 15:25 |
|
||
|
Выбор определенного кол-ва записей Select запросом
|
|||
|---|---|---|---|
|
#18+
А может можно сделать все за 2 шага 1 добавить свое поле с новым ID в порядке сортировки 2 выбрать все , где ID>начала и <конца только как сделать п1 ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2001, 15:31 |
|
||
|
Выбор определенного кол-ва записей Select запросом
|
|||
|---|---|---|---|
|
#18+
CREATE PROCEDURE paging (@rec_per_page int, @page int) AS set nocount on select identity(int, 1,1) as id_tmp, myid into #tmp_paging from mytable select * from #tmp_paging as tmp inner join mytable as t on tmp.id=t.myid where tmp.id_tmp BETWEEN (@rec_per_page * @page) AND (@rec_per_page * (@page+1) - 1) drop table #tmp_paging GO Примечания - myid является первичным ключом для mytable - если поле myid в таблице mytable также имеет свойство IDENTITY, то необходимо использовать запрос select identity(int, 1,1) as id_tmp, cast(myid as int) as myid into #tmp_paging from mytable для того, чтобы "обмануть" сервер. - на время выполнения запроса select ... into #tmp_paging ... будет блокироваться база tempdb. Если время блокировки критично, то сначала придется создать таблицу #tmp_paging, а потом уже добавлять в нее записи. Это усложняет код (относительно), но в этом случае будет блокироваться только таблица #tmp_paging. - можно сделать таблицу #tmp_paging и глобальной (##tmp_paging), возможно, что усложнение кода повысит производительность всего проекта (тут только придется решать вопрос актуальности данных, так что сложный вопрос) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2001, 15:38 |
|
||
|
Выбор определенного кол-ва записей Select запросом
|
|||
|---|---|---|---|
|
#18+
очень простой но не очень эффективный для больших выборок метод: Нужно иметь поле для сортировки. Пусть это будет ID Нужно выбрать записи с 50 по 60. select top 10 * from ( select top 60 * from mytable1 order by id ASC) drvd order by id desc Только записи пойдут в обратном порядке. Ну это уже не проблема, я думаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2001, 02:47 |
|
||
|
Выбор определенного кол-ва записей Select запросом
|
|||
|---|---|---|---|
|
#18+
В февральском номере SQL Magazine была хорошая статья на эту тему. Over the TOP. http://www.sqlmag.com/Articles/Index.cfm?ArticleID=16191 Если кому интересно, бросьте мне E-mail (olegusan@yahoo.com) и я вам ее вышлю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2001, 03:06 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32016221&tid=1825152]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 263ms |
| total: | 404ms |

| 0 / 0 |
