Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите с запросом SQL 
V
    Опции темы
kedicik
Дата 10.9.2007, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 12.4.2007

Репутация: нет
Всего: нет



Мне нужно получить в запросе оду строку из таблицы по ее порядковому номеру. Например пятую строку

Добавлено через 2 минуты и 5 секунд
то есть пятую запись из какой-либо выборки
PM MAIL   Вверх
zaver
Дата 10.9.2007, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 15.8.2005

Репутация: нет
Всего: 3



универсального метода не существует, а если и есть, то он строго привязан к типу БД. в стандарт SQL это не входит
PM MAIL WWW ICQ Skype YIM MSN   Вверх
1stain
Дата 10.9.2007, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 30.7.2007
Где: Киев - Харьков

Репутация: 5
Всего: 40



если б мне надо было вытащить пятую строку неизвестно из какой СУБД, я б сначала поискал бы в мануале что-нибудь про курсоры


--------------------
Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein)
user posted image
PM MAIL   Вверх
kedicik
Дата 10.9.2007, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 12.4.2007

Репутация: нет
Всего: нет



СУБД access. неужели нельзя ничего сделать? может запрос в запросе?
PM MAIL   Вверх
thomas
Дата 10.9.2007, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



kedicik, 
если я правильно понял, то тебя не интересует id строки, а только порядковый номер строки в таблице(т.е. индекс )
Тогда решение такое
делаешь выборку данных из таблицы бд в датасет
и в датасете из таблицы читаешь данные из row(4)
Код

myRow = MyDS.Tables("myTable").Rows(4)

примерно так
идея понятна.  smile 


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
kedicik
Дата 10.9.2007, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 12.4.2007

Репутация: нет
Всего: нет



Понятна. Я это знаю. Но я не хотела так делать. А хотела сразу получить в запросе одну запись из выборки
кажется нашла как.
надо проверить
select * from db_guest limit 5,1
не знаю в access пойдет или нет?
PM MAIL   Вверх
Akina
Дата 10.9.2007, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Цитата(kedicik @  10.9.2007,  23:08 Найти цитируемый пост)
в access пойдет или нет? 

Нет.

В Аксесс есть возможность взять только определенное количество или долю строк от начала выборки. Так что в нем придется:

Код

Select Top 1 *
From
(
  Select Top 5 *
  From MyTable
  Order By SomeThing Desc
)
Order By SomeThing Asc



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kedicik
Дата 11.9.2007, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 12.4.2007

Репутация: нет
Всего: нет



спасибо
PM MAIL   Вверх
zaver
Дата 11.9.2007, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 15.8.2005

Репутация: нет
Всего: 3



Цитата

kedicik, 
если я правильно понял, то тебя не интересует id строки, а только порядковый номер строки в таблице(т.е. индекс )
Тогда решение такое
делаешь выборку данных из таблицы бд в датасет
и в датасете из таблицы читаешь данные из row(4)
Код

myRow = MyDS.Tables("myTable").Rows(4)

примерно так
идея понятна.  smile

если какая-то субд и придумывает свой метод вытаскивания Nой строки из БД, то только для того чтобы не загружать всю таблицу. если это будет БД не из классной лабораторной работы, или домашнего телефонного справочника, то вся таблица может грузится несколько минут, а порой у тебя и оперативы может не хватить, чтоб ее целиком подгрузить. 
никогда так не делайте если пишете серьезную программу!


PM MAIL WWW ICQ Skype YIM MSN   Вверх
kedicik
Дата 11.9.2007, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 12.4.2007

Репутация: нет
Всего: нет



Понятно. Да наверное это наилучший вариант.
Тогда еще один вопрос/. Как лучше сделать если заведомо знаешь что в твоем запросе получишь только одну записьиз выборки, поскольку например выборка идет по уникальному ключу.
Код

myRow = MyDS.Tables("myTable").Rows(0)

или еще какие-то способы есть? 
PM MAIL   Вверх
zaver
Дата 11.9.2007, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 15.8.2005

Репутация: нет
Всего: 3



ну если ты знаешь, что у тебя там еще и один столбик, то можно 

Код

object MyResult=MyDataReader.ExecuteScalar();


Это сообщение отредактировал(а) zaver - 11.9.2007, 19:02
PM MAIL WWW ICQ Skype YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0533 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.