Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.23;
Скачать: CL | DM;

Вниз

Как выбрать случайную запись в 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.046 c
15-1150778246
Карелин Артем
2006-06-20 08:37
2006.07.23
Чем перекодировать " --- &amp;#225;&amp;#231;&amp;#226; &amp;#170;&amp;#237;&amp;#228;&amp;#228;&amp;#168;&amp;#230;&amp;#168;-&amp;#226;  -T&amp;#227;, &amp;#162;&amp;#224;-- &amp;#2


2-1152017633
NBU
2006-07-04 16:53
2006.07.23
Delfi 7 and MS SQL 2000


2-1151684978
Gloomer
2006-06-30 20:29
2006.07.23
Отображение GIF


2-1152085498
Новинький
2006-07-05 11:44
2006.07.23
Ребята сравните несколько запросов...


3-1147963296
novill
2006-05-18 18:41
2006.07.23
Append, Locate и Edit