Простой вопрос по SQL

Все, что вы хотели знать о программизме, но боялись спросить.
Аватара пользователя
Seaman
Пользователь
Сообщения: 197
Зарегистрирован: 21 фев 2003, 13:26
Откуда: Ессентуки-Нврск-СПб-Торонто

Сообщение Seaman »

папа Карло писал(а):перечитал вопрос.... "Предпологается МССКЛ Сервер".... приведена таблица без никаких индексов. требуется выдать с 5ой по 10ую записей в физическом ордере (ибо хочет 11 и 20).... задача не имеет решения.
Пап, по-моему, это размышления Доктора наук ... Ты полагаешь, что на интервью могли задать вопрос такого порядка :shock: ? Не думаю...
А вааще мне это IT в Канаде что-то начинает уже заедать...
Аватара пользователя
Yury
The L'ony
Сообщения: 26202
Зарегистрирован: 22 янв 2004, 13:48
Откуда: Мирный -> Vancouver
Контактная информация:

Сообщение Yury »

папа Карло писал(а):перечитал вопрос.... "Предпологается МССКЛ Сервер".... приведена таблица без никаких индексов. требуется выдать с 5ой по 10ую записей в физическом ордере (ибо хочет 11 и 20).... задача не имеет решения.
как так, а это? -

BEGIN
select identity(int,1,1) counter ,* into #temp from tbl
select * from #temp where counter between 5 and 10
drop table #temp
END
Аватара пользователя
папа Карло
Шарманщик
Сообщения: 8565
Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA

Сообщение папа Карло »

Yury писал(а):
папа Карло писал(а):перечитал вопрос.... "Предпологается МССКЛ Сервер".... приведена таблица без никаких индексов. требуется выдать с 5ой по 10ую записей в физическом ордере (ибо хочет 11 и 20).... задача не имеет решения.
как так, а это? -

BEGIN
select identity(int,1,1) counter ,* into #temp from tbl
select * from #temp where counter between 5 and 10
drop table #temp
END
ну блин уже :) .... ты за ассампшен взял, что он тебе в таблицу во временную запишет в том порядке как оно там хранится? для того, чтоб такой ассампшен сделать надо было написать скл сервер оптимайзер ;)
Аватара пользователя
папа Карло
Шарманщик
Сообщения: 8565
Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA

Сообщение папа Карло »

Seaman писал(а):
папа Карло писал(а):перечитал вопрос.... "Предпологается МССКЛ Сервер".... приведена таблица без никаких индексов. требуется выдать с 5ой по 10ую записей в физическом ордере (ибо хочет 11 и 20).... задача не имеет решения.
Пап, по-моему, это размышления Доктора наук ... Ты полагаешь, что на интервью могли задать вопрос такого порядка :shock: ? Не думаю...
А вааще мне это IT в Канаде что-то начинает уже заедать...
на самом деле кайфный вопрос.... я его себе в вопросник добавлю для интервью потенциальных кандидатов. :lol:
Аватара пользователя
Seaman
Пользователь
Сообщения: 197
Зарегистрирован: 21 фев 2003, 13:26
Откуда: Ессентуки-Нврск-СПб-Торонто

Сообщение Seaman »

Кстати, а на Таити действительно хорошо-о-о ... Там такие красивые девушки ... и черный жемчуг ...
Упс, но это не в тему, просто Yury навеял ...
Аватара пользователя
Yury
The L'ony
Сообщения: 26202
Зарегистрирован: 22 янв 2004, 13:48
Откуда: Мирный -> Vancouver
Контактная информация:

Сообщение Yury »

папа Карло писал(а):
Yury писал(а):
папа Карло писал(а):перечитал вопрос.... "Предпологается МССКЛ Сервер".... приведена таблица без никаких индексов. требуется выдать с 5ой по 10ую записей в физическом ордере (ибо хочет 11 и 20).... задача не имеет решения.
как так, а это? -

BEGIN
select identity(int,1,1) counter ,* into #temp from tbl
select * from #temp where counter between 5 and 10
drop table #temp
END
ну блин уже :) .... ты за ассампшен взял, что он тебе в таблицу во временную запишет в том порядке как оно там хранится? для того, чтоб такой ассампшен сделать надо было написать скл сервер оптимайзер ;)
oops :oops:
имхо, все же, порядковые номера имелись в виду...
Аватара пользователя
Yury
The L'ony
Сообщения: 26202
Зарегистрирован: 22 янв 2004, 13:48
Откуда: Мирный -> Vancouver
Контактная информация:

Сообщение Yury »

Seaman писал(а):Кстати, а на Таити действительно хорошо-о-о ... Там такие красивые девушки ... и черный жемчуг ...
Упс, но это не в тему, просто Yury навеял ...
блин, а я вот не бывал :cry:
Аватара пользователя
Seaman
Пользователь
Сообщения: 197
Зарегистрирован: 21 фев 2003, 13:26
Откуда: Ессентуки-Нврск-СПб-Торонто

Сообщение Seaman »

Yury писал(а):
Seaman писал(а):Кстати, а на Таити действительно хорошо-о-о ... Там такие красивые девушки ... и черный жемчуг ...
Упс, но это не в тему, просто Yury навеял ...
блин, а я вот не бывал :cry:
А я вот в IT не особо ... :( , особенно в своем вопросе на другую тему ...
Аватара пользователя
Yury
The L'ony
Сообщения: 26202
Зарегистрирован: 22 янв 2004, 13:48
Откуда: Мирный -> Vancouver
Контактная информация:

Сообщение Yury »

Seaman писал(а):
Yury писал(а):
Seaman писал(а):Кстати, а на Таити действительно хорошо-о-о ... Там такие красивые девушки ... и черный жемчуг ...
Упс, но это не в тему, просто Yury навеял ...
блин, а я вот не бывал :cry:
А я вот в IT не особо ... :( , особенно в своем вопросе на другую тему ...
я так вообще не в IT :D
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

Seaman писал(а):Да да да, простите, пропустил еще один SELECT:

SELECT * FROM (SELECT TOP 5 * FROM (SELECT TOP 10 * FROM table ORDER BY id) ORDER BY id DESC) ORDER BY id ASC;

Нам надо получить записи с 5-й по 10-ю, обращаем внимание, что id при этом = 11 и 20. В первую голову она (БД) выбирает первые 10 записей (1 - 10), потом она их переворачивает и снова выбирает первые 5 записей, но теперь с конца (10 - 5), после этого мы их ставим в правильном порядке (5-10), куда как раз эти id = 11 и id=20 и попадают.
Самый первый селект вроде как лишний?
Аватара пользователя
Yury
The L'ony
Сообщения: 26202
Зарегистрирован: 22 янв 2004, 13:48
Откуда: Мирный -> Vancouver
Контактная информация:

Сообщение Yury »

vg писал(а):
Seaman писал(а):Да да да, простите, пропустил еще один SELECT:

SELECT * FROM (SELECT TOP 5 * FROM (SELECT TOP 10 * FROM table ORDER BY id) ORDER BY id DESC) ORDER BY id ASC;

Нам надо получить записи с 5-й по 10-ю, обращаем внимание, что id при этом = 11 и 20. В первую голову она (БД) выбирает первые 10 записей (1 - 10), потом она их переворачивает и снова выбирает первые 5 записей, но теперь с конца (10 - 5), после этого мы их ставим в правильном порядке (5-10), куда как раз эти id = 11 и id=20 и попадают.
Самый первый селект вроде как лишний?
он пересортировывает назад у него
все равно при <10 записях результат неверный
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

Yury,
Про последовательность.... Она может быть и просто возрастающей.
На практике так и бывает. При вставке новой записи просто инкрементируют ID.

All,
Фиг его знает, что имел ввиду интервьюрующий. Вопрос, конечно, можно завалить. Но завалил то интервью я по другим причинам. Я такоооооооооого не вспомнил, и о такоооооом недопёр.... Не скажу - стыдно. Вспомнил, через несколько минут, как вышел. И допёр также потом. :lol: Ну да фиг с ним.
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

Yury писал(а):
vg писал(а):
Seaman писал(а):Да да да, простите, пропустил еще один SELECT:

SELECT * FROM (SELECT TOP 5 * FROM (SELECT TOP 10 * FROM table ORDER BY id) ORDER BY id DESC) ORDER BY id ASC;

Нам надо получить записи с 5-й по 10-ю, обращаем внимание, что id при этом = 11 и 20. В первую голову она (БД) выбирает первые 10 записей (1 - 10), потом она их переворачивает и снова выбирает первые 5 записей, но теперь с конца (10 - 5), после этого мы их ставим в правильном порядке (5-10), куда как раз эти id = 11 и id=20 и попадают.
Самый первый селект вроде как лишний?
он пересортировывает назад у него
все равно при <10 записях результат неверный
Да понятно, но всё равно можно было бы начать SELECT TOP 5 *. А сортировка конечного набора - фиг с ней.
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

Да и ещё... Нифига себе как все участвуют в обсуждении :lol:
Ответить