Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];

Вниз

Знатокам SQL   Найти похожие ветки 

 
Turalyon   (2001-12-17 10:12) [0]

Привет всем.
Есть задача - необходимо чтобы в результате запроса записи были в случайном порядке (типа экзамен). Есть ли какой нить способ сделать их случайными прямо в запросе?
Я придумал способ как это сделать "в ручную" создаю структуру, в которй храню ключи от результата SQL запроса, потом их "перемешиваю" и выдаю по одному... но это как мне кажется через з..цу может есть способ попроще???


 
Alexandr   (2001-12-17 10:26) [1]

на SQL видимо никак
только на клиенте ручками.
и в слечае парадокса это нормально.


 
gek   (2001-12-17 10:30) [2]

Я делал так сначала генерил числа случайные ну а потом запрос делал типа

SetCif:set of 1..255;
SetCif:=[];
k:word;
CountProhod:word;
CountProhod:=0;
repeat
k:=random(200);
if(not (k in SetCif))and(k <> 0) then
begin
SetCif:=SetCif +[k];
inc(CountProhod);
end;
until CountProhod = 10;//кол-во вопросов

select * from mytable where id in SetCif все нормально работает


 
Turalyon   (2001-12-17 10:41) [3]

2gek
А разве в результате выполнения запроса оно не выберет все по порядку следования в физичексой таблице? Мне просто не совсем понятно как работает оператор in. То есть я понимаю как он работает, только не понятно, в каком порядке он будет выбирать записи из списка SetCif.


 
gek   (2001-12-17 10:54) [4]

Когда я все это дело делал у меня такой вопрос не стоял. Честно говоря
не могу просветить. Для меня было главное получить случайные записи.
Но вот че на ум приходит - можно таким же образом отфильтровать таблицу не прибегая к SQL запросу.
Да если тебе надо как то упорядочить записи используй ORDER BY для SQL
ну и индексы для обычной таблицы


 
Turalyon   (2001-12-17 11:08) [5]

Мне наоборот не надо их упорядочивать, а перемешать надо :)
Я попробовал сейчас в SQLExplorer -е все работает, причем в результате запроса выдается сначала та запись, которая стоит первая в списке, потом след. и т.д. так что если они рандомные, то все ок. СПАСИБО БОЛЬШОЕ!!!!



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.015 c
3-52517
facquodvis
2001-12-17 10:49
2002.01.17
один запрос - две БД


3-52499
Alexandr Suvorov
2001-12-05 11:26
2002.01.17
Запись данных в dBase????


1-52541
Rust_br
2001-12-26 22:07
2002.01.17
Как уменьшить размер exe шника?


14-52637
Sobesednic
2001-11-20 22:56
2002.01.17
В чем разница Delphi 6 Enterprise(144mb) от Delphi 6 Personal(140mb)


1-52545
Smok_er
2001-12-28 05:37
2002.01.17
Exception EJPEG





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский