metaclass: (Default)
[personal profile] metaclass
Народ, а гляньте в разных СУБД, что покажет такой запрос?
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-04 06:01 am (UTC)
From: [identity profile] alexeyk77.livejournal.com
Проверил для sybase sa10 (не ase), а комрады с sql.ru подтвердили аналогичное поведение для последней версии - sa12:
случайная выборка сформировалась (в отличие от mssql) но не отсортировалась. Сортировки удалось добиться если:
"escapist: работает только если умножить и поделить на одну и ту же колонку" (это лично я не проверял). Закину вопросец на форум поддержки сайбейза, послушаю что ответят.

Date: 2010-09-04 06:56 am (UTC)
From: [identity profile] alexeyk77.livejournal.com
ASE 15.5 ESD#1 - как и у MSSQL (одна и та-же случайная величина)

Date: 2010-09-04 04:28 pm (UTC)
From: (Anonymous)
В Sybase ASE 15.5, Есть две функции rand() и rand2().
rand()-как в MS SQL Server
rand2()- Все нормально! И на каждую строчку новое значение, и сортировка работает!!!

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Nov. 2nd, 2025 10:19 am
Powered by Dreamwidth Studios