Родились сегодня:
wadim21


Лидеры рейтинга

ID: 401284

Михаил Александров

Советник

378

Россия, Санкт-Петербург


ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

339

Россия, пос. Теплоозёрск, ЕАО


ID: 401888

puporev

Профессор

215

Россия, Пермский край


ID: 405338

vovaromanov.jr

1-й класс

116


ID: 400669

epimkin

Профессионал

111


ID: 242862

Hunter7007

Мастер-Эксперт

29

Россия, Омск


ID: 137394

Megaloman

Мастер-Эксперт

25

Беларусь, Гомель


8.10.2

13.10.2021

JS: 2.10.2
CSS: 4.6.0
jQuery: 3.6.0
DataForLocalStorage: 2021-10-23 05:16:01-standard


Установка и настройка серверов баз данных, таблицы и запросы.

Администратор раздела: Коцюрбенко Алексей Владимирович (Старший модератор)

Консультация онлайн # 109065

Раздел: Базы данных
Автор вопроса: Whiteman
Дата: 12.11.2007, 15:04 Консультация закрыта
Поступило ответов: 4

Здравствуйте ! Допустим у меня есть таблица с 1000 записями. Мне нужно выбрать 100 из них, причем сделать сортировку по возрастанию по какому нибудь столбцу. И я точно знаю что в этой сотне записей будет запись с именем "123123.gif"-название столбца filename. Так вот , как можно узнать номер этой записи ? Не номер из самой таблицы из 1000 строк, а номер из выбранной сотни. Порядковый номер. Если это вообще возможно.

Ответ # 193503 от Errandir
Здравствуйте, Whiteman!

SELECT COUNT (*) FROM -- считаем кол-во элементов
(SELECT * FROM tab -- из подтаблицы таблицы tab...
“усл”) AS subtab -- “усл” — условие выборки, например WHERE sex == male
WHERE col <= “tgt”; -- ...которые располагались бы раньше нужного (“tgt”) нам элемента в колонке col включая его самого если бы мы сортировали по ней, что соответствует его номеру.

Надеюсь понятно...

Errandir

Посетитель
12.11.2007, 20:54
Ответ # 193531 от Тесленко Евгений Алексеевич
Здравствуйте, Whiteman!
"Допустим" Вы используете MS SQL тогда сотня записей отображается запросом который начинается так:
SELECT TOP 100...
Определить номер записи содержащей "123123.gif" проще если нумерация строк будет отображаться. В вопросе 104.829 эта тема подымалась, подобный запрос отобразит поле с нумерацией по порядку:
select test_3.rank, test_3.id_test, test_3.string
from (select test_1.id_test, test_1.string, (select count(*) from test as test_2 where test_2.id_test <= test_1.id_test) as rank from test as test_1) as test_3
order by rank
Евгений.

Тесленко Евгений Алексеевич

Посетитель
12.11.2007, 23:19
Ответ # 193551 от Титов Михаил Анатольевич
Здравствуйте, Whiteman!

Сортировать надо по filename?, тогда запрос

SELECT No
FROM (
SELECT Count(*) AS No, T2.filename
FROM Table AS T1 INNER JOIN Table AS T2 ON T1.filename <= T2.filename
WHERE .... -- здесь ваше условие отбора
GROUP BY T2.filename
) AS T
WHERE T.filename = '123123.gif'

вернет вам номер вашей записи в выборке. Но это так, для демонстрации одного способа последовательной нумерации строк в запросе. Конкретно ваша задача может быть решена короче:

SELECT Count(*) AS No
FROM Table
WHERE <другие условия отбора> AND filename <= '123123.gif'
ORDER BY filename

В данном случае запись с полем filename, равным '123123.gif' будет последней в выборке, а количество строк будет являтся ее порядковым номером.


Титов Михаил Анатольевич

Посетитель
13.11.2007, 03:22
Ответ # 193555 от Nomadfromx2007
Здравствуйте, Whiteman!
Вот запрос, который это реализует на Оракле:
1 подзапрос - выборку делает с сортировкой по столбцу
2 подзапрос - пронумеровывает записи + выбирает только первые 100 записей
3 подзапрос - ищет конкретно по имени файла

Приложение:


Nomadfromx2007

Посетитель
13.11.2007, 05:04
Мини-форум консультации # 109065
Нет сообщений в мини-форуме
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела

Коцюрбенко Алексей Владимирович

Старший модератор

Рейтинг: 69

solowey

Академик

Рейтинг: 3

Alexander Babich

Профессор

Рейтинг: 1

SAW

Студент

Рейтинг: 0

LfiN

Специалист

Рейтинг: 0

PsySex

Профессионал

Рейтинг: 0