Форум: "Базы";
Текущий архив: 2006.07.23;
Скачать: [xml.tar.bz2];
ВнизКак выбрать случайную запись в IB? Найти похожие ветки
← →
_dimka © (2006-05-18 12:25) [0]Как выбрать случайную запись в IB?
Заранее спасибо!
← →
Sergey13 © (2006-05-18 12:26) [1]Придумать случайное условие поиска.
← →
Desdechado © (2006-05-18 12:26) [2]набор фиксированный навсегда или возможны изменения в его составе?
и для чего вообще?
а так есть UDF в стандартной поставке для работы со случайными числами
← →
_dimka © (2006-05-18 12:29) [3]
> набор фиксированный навсегда или возможны изменения в его
> составе?
возможны изменения.
← →
novill (2006-05-18 13:01) [4]Набор-то какой? это запрос или таблица.
Если таблица - проще всего:
randomize;
...
ibtable.recno:=trunc(random*(ibtable.recordcount)+1);
← →
_dimka © (2006-05-18 13:39) [5]
То novill
В запросе выбрать случайную запись, т.е. Sergey13 © прав, но какое имено условие поиска?? чет ничего в голову не лезет...
← →
Sergey13 © (2006-05-18 14:20) [6]2[5] _dimka © (18.05.06 13:39)
Для того, что бы что-то придумать, надо знать на какую тему думать. 8-)
Например структуру таблицы и характер ее работы.
Можно например взять
select max(id) from table where id < random(max(id))
← →
_dimka © (2006-05-18 17:58) [7]Структура оч простая:
id - ключ
gr - ид группы
name - название
> select max(id) from table where id < random(max(id))
не подойдет, т.к.:
1) запись может быть удалена
2) нужно выбрать случайную запись в групе т.е. where gr=2 например
← →
Desdechado © (2006-05-18 18:17) [8]пишется ХП, которая возвращает набор данных по указанной в параметре группе и нумерует строки в этом наборе
пишется SQL, который выбирает случайную строку с номером не более, чем кол-во строк в наборе
← →
Deniz © (2006-05-19 06:31) [9]
> _dimka © (18.05.06 17:58) [7]
>
> Структура оч простая:
> id - ключ
> gr - ид группы
> name - название
>
> > select max(id) from table where id < random(max(id))
>
> не подойдет, т.к.:
> 1) запись может быть удалена
> 2) нужно выбрать случайную запись в групе т.е. where gr=2
> например
>
Не нравится max(id) пользуй min(id)
select min(id) from table where id >= random(max(id)) and gr=2
← →
_dimka © (2006-05-19 10:32) [10]Всем огромное спасибо!
Особенно Sergey13!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.07.23;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c