Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RusFAQ.ru: Базы данных SQL


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Базы данных SQL

Выпуск № 306
от 18.11.2007, 09:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 462, Экспертов: 61
В номере:Вопросов: 1, Ответов: 4


Вопрос № 109065: Здравствуйте ! Допустим у меня есть таблица с 1000 записями. Мне нужно выбрать 100 из них, причем сделать сортировку по возрастанию по какому нибудь столбцу. И я точно знаю что в этой сотне записей будет запись с именем "123123.gif"-названи...

Вопрос № 109.065
Здравствуйте ! Допустим у меня есть таблица с 1000 записями. Мне нужно выбрать 100 из них, причем сделать сортировку по возрастанию по какому нибудь столбцу. И я точно знаю что в этой сотне записей будет запись с именем "123123.gif"-название столбца filename. Так вот , как можно узнать номер этой записи ? Не номер из самой таблицы из 1000 строк, а номер из выбранной сотни. Порядковый номер. Если это вообще возможно.
Отправлен: 12.11.2007, 15:04
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 7)

Отвечает: Errandir
Здравствуйте, Whiteman!

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

Надеюсь понятно...
---------
Si vox est - canta!
Ответ отправил: Errandir (статус: 7-ой класс)
Ответ отправлен: 12.11.2007, 20:54
Оценка за ответ: 5

Отвечает: Тесленко Евгений Алексеевич
Здравствуйте, 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
Оценка за ответ: 5

Отвечает: Титов Михаил Анатольевич
Здравствуйте, 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' будет последней в выборке, а количество строк будет являтся ее порядковым номером.

Ответ отправил: Титов Михаил Анатольевич (статус: 3-ий класс)
Ответ отправлен: 13.11.2007, 03:22
Оценка за ответ: 4
Комментарий оценки:
извините но вы наверное не так меня поняли. этот запрос находит в исходной таблице запись с именем '123123.gif', допустим она номер 10 в таблице. Этот запрос вернет 10 в любом случает, отсортировать по возрастанию или убыванию.

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

Приложение:

Ответ отправил: Nomadfromx2007 (статус: 1-ый класс)
Ответ отправлен: 13.11.2007, 05:04
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.62.1 от 14.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное