powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Помогите сделать запрос
12 сообщений из 12, страница 1 из 1
Помогите сделать запрос
    #32676089
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Друзья, вот например такой запрос
SELECT tabSchNaOplWeb.Код
FROM tabSchNaOplWeb
ORDER BY tabSchNaOplWeb.Код DESC;
генерит тысячу записей.
А нет ли запроса, выдающего запись например номер 199 из этой тысячи?
И ещё, пожалуйста, напишите запрос, выдающий первые 199 записи.
Если таких запросов не существует, сообщите, чтобы я обломался.
Max Pro
...
Рейтинг: 0 / 0
Помогите сделать запрос
    #32676116
Согласен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Max ProДрузья, вот например такой запрос
SELECT tabSchNaOplWeb.Код
FROM tabSchNaOplWeb
ORDER BY tabSchNaOplWeb.Код DESC;
генерит тысячу записей.
А нет ли запроса, выдающего запись например номер 199 из этой тысячи?
И ещё, пожалуйста, напишите запрос, выдающий первые 199 записи.
Если таких запросов не существует, сообщите, чтобы я обломался.
Max Pro

Вам надо указать с какой СУБД Вы работате, а затем спросить на соответствующем этой СУБД форуме.

Для MSSQL например
Код: plaintext
1.
2.
3.
SELECT TOP  199  tabSchNaOplWeb.Код
FROM tabSchNaOplWeb
ORDER BY tabSchNaOplWeb.Код DESC
...
Рейтинг: 0 / 0
Помогите сделать запрос
    #32676127
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно во временную таблицу выбрать с автоинкрементным полем и оттуда выбрать одну запись с этим полем=199.
...
Рейтинг: 0 / 0
Помогите сделать запрос
    #32677705
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно, спасибо. А что, запросом никак? Про "TOP 199" я понял, а нет ли "ONLY 199"? Что касается БД, то я использую Аксес, Фокс Про, SQL-сервер и Oracle. Нужен запрос по той БД, которую Вы знаете, мне всё равно. Просто укажите что Вы имели ввиду. Ну а я уж сам проверю работоспособность на остальных БД.
Спасибо ещё раз за помощь.
Max Pro
...
Рейтинг: 0 / 0
Помогите сделать запрос
    #32677716
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про "TOP 199" я понял, а нет ли "ONLY 199"?

А что вы подразумеваете под TOP 199 и ONLY 199 ?

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Помогите сделать запрос
    #32677812
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Top 199 - это первые 199 записей, а Only 199 - только 199-я запись.
Разве не так?
Max Pro
...
Рейтинг: 0 / 0
Помогите сделать запрос
    #32677836
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TOP работает, сейчас опробовал. А вот ONLY не работает. Может есть другое ключевое слово?
Max Pro
...
Рейтинг: 0 / 0
Помогите сделать запрос
    #32677886
Согласен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Max ProTOP работает, сейчас опробовал. А вот ONLY не работает. Может есть другое ключевое слово?
Max Pro

Нет Only. Нет простого решения в общем случае. Вы пытаетесь сэмулировать навигационную БД, а это неверно.
Например
Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT TOP  1  tabSchNaOplWeb.Код FROM tabSchNaOplWeb
WHERE tabSchNaOplWeb.Код NOT IN
(SELECT TOP  198  tabSchNaOplWeb.Код
FROM tabSchNaOplWeb
ORDER BY tabSchNaOplWeb.Код DESC)
ORDER BY tabSchNaOplWeb.Код DESC
выдаст 199 строку. При этом у меня нет уверенности, что все перечисленные БД поддерживают вложенные запросы.

Мой совет - пересмотрите подход
...
Рейтинг: 0 / 0
Помогите сделать запрос
    #32677916
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Согласен
Да, спасибо, это работает во всех БД.
По поводу пересмотра подхода я ещё подумаю.
Max Pro
...
Рейтинг: 0 / 0
Помогите сделать запрос
    #32678388
Фотография nex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TOP в Oracle работать не будет.. Это вообще штука для MSSQL. Не знаю, какие ещё базы поддерживают TOP (Sybase?), но Oracle такой запрос не проглотит.

--
nexus.postcount++;
...
Рейтинг: 0 / 0
Помогите сделать запрос
    #32679541
bazaea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msSQL2k
Выберет 123 строку. (не знаю как Dataset, Recordset будет необновляемым)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT * FROM 
(SELECT TOP  123  tabSchNaOplWeb.Код
FROM tabSchNaOplWeb
ORDER BY tabSchNaOplWeb.Код DESC) AS pre1
LEFT JOIN 
(SELECT TOP  122  tabSchNaOplWeb.Код
FROM tabSchNaOplWeb
ORDER BY tabSchNaOplWeb.Код DESC) AS pre1
ON pre1.Код=pre2.Код
Where pre2.Код IS NULL
...
Рейтинг: 0 / 0
Помогите сделать запрос
    #32693822
Dr. Yes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На PHP + MySQL я делал так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT * FROM guestbook ORDER BY date DESC LIMIT $strt,$N

- Выдаёт $N записей, начиная со $strt
$strt высчитывается примерно так (+немного ограничений +/-  1  etc.): кол-во записей на странице * номер страницы

SELECT ... FROM ... WHERE ... ORDER BY ... LIMIT  199 

- выбирает первые  199  записей
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Помогите сделать запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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