Поведение запроса
Sep. 3rd, 2010 08:39 amНарод, а гляньте в разных СУБД, что покажет такой запрос?
select rand() as a from some_table order by a
Т.е. рандом выбранный из таблицы с несколькими полями и сортировкой по этому же полю. В Firebird, судя по результатам, оно два раза считает рандом - один раз для показа, второй для сортировки.
PS: Firebird не сортирует даже такое:
select * from (select rand() as a from some_table) order by a
Ленивые вычисления без мемоизации и проверки на побочные эффекты у них там что ле.
select rand() as a from some_table order by a
Т.е. рандом выбранный из таблицы с несколькими полями и сортировкой по этому же полю. В Firebird, судя по результатам, оно два раза считает рандом - один раз для показа, второй для сортировки.
PS: Firebird не сортирует даже такое:
select * from (select rand() as a from some_table) order by a
Ленивые вычисления без мемоизации и проверки на побочные эффекты у них там что ле.
И вдогонку
Date: 2010-09-03 09:03 am (UTC)Re: И вдогонку
Date: 2010-09-03 09:04 am (UTC)Re: И вдогонку
Date: 2010-09-03 09:14 am (UTC)постгрес
select random() as a from generate_series(1,10) order by random()*1
тоже не сортирует.