Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Функция rand()
|
|||
|---|---|---|---|
|
#18+
1. Подключаемся к АСА9 2. Вызываем rand 3. Отключаемся повторяем п.п.1-3, на п.2 получаем одно и тоже значение. Что сделать, чтобы каждый раз получать разные значения? Функции наподобие randomize() не нашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2006, 21:55 |
|
||
|
Функция rand()
|
|||
|---|---|---|---|
|
#18+
А хелп почитать? BOL Syntax RAND ( [integer-expression] ) Parameters integer-expression The optional seed used to create a random number. This argument allows you to create repeatable random number sequences. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2006, 22:05 |
|
||
|
Функция rand()
|
|||
|---|---|---|---|
|
#18+
Читал, не помогло. На сколько я понял, это просто дает выбрать набор(последовательность) случайных чисел. Но первый вызов rand(), после rand(10) к примеру, всегда будет возвращать одинаковые значения. Ведь это псевдослучайные числа, а иннициализировать генератор константой - получать одну и туже последовательность. Я не прав? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2006, 22:31 |
|
||
|
Функция rand()
|
|||
|---|---|---|---|
|
#18+
Прав. Ну сделай себе rand(X) Где X количество миллисекунд от полуночи. Вот тебе и будет randomize(). Собственно говоря, большинство реализаций randomize() именно так и сделаны :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2006, 22:56 |
|
||
|
Функция rand()
|
|||
|---|---|---|---|
|
#18+
White OwlПрав. Ну сделай себе rand(X) Где X количество миллисекунд от полуночи. Вот тебе и будет randomize(). Собственно говоря, большинство реализаций randomize() именно так и сделаны :) а как в Субасе 12,5 получить количество миллисекунд от полуночи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 11:28 |
|
||
|
Функция rand()
|
|||
|---|---|---|---|
|
#18+
Васильев Сергей Владимирович White OwlПрав. Ну сделай себе rand(X) Где X количество миллисекунд от полуночи. Вот тебе и будет randomize(). Собственно говоря, большинство реализаций randomize() именно так и сделаны :) а как в Субасе 12,5 получить количество миллисекунд от полуночи? DATEDIFF('millisecond',..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 11:44 |
|
||
|
Функция rand()
|
|||
|---|---|---|---|
|
#18+
Короче мне нужно сделать случайную выборку строки из таблицы, для этого хотябы надо возвращать резутьтат выборки селекта в случайном порядке, но такой код ничего не дает Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 12:07 |
|
||
|
Функция rand()
|
|||
|---|---|---|---|
|
#18+
Нужно, делать случайную выборку из БД /Sybase 12.5/ одной строки /для конкурса, определение победителей/ В MySQL проходит такая штука, причем об этом написано даже в мануале к нему /Следует учитывать, что оператор RAND() в выражении WHERE при выполнении выражения WHERE будет вычисляться каждый раз заново/ SELECT * FROM table WHERE 1=1 ORDER BY RAND() LIMIT 1 Либо так даже SELECT * FROM table ORDER BY RAND() LIMIT 1 В Sybase 12.5 это не проходит, т.к. как я понял значение RAND() для запроса вычисляется единожды Пример код SQL 1: SELECT Phone,rand() FROM mod_happy_ticket WHERE Phone>0 ORDER BY RAND() Результат Phone rand() 789777 .98420166176939461 789777 .98420166176939461 789777 .98420166176939461 789777 .98420166176939461 789777 .98420166176939461 789777 .98420166176939461 789777 .98420166176939461 789777 .98420166176939461 789777 .98420166176939461 79139166670 .98420166176939461 Как нибудь, в Субасе можно сделать это??? В виде хранимой процедуры... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 12:58 |
|
||
|
Функция rand()
|
|||
|---|---|---|---|
|
#18+
Да, с миллисекундами номер не пройдет. Нужно попробовать посунуть RAND, что уникальное для каждой записи. Например поле ключа. Если он у Вас конечно числовой, иначе как-то преобразовать в число. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 13:09 |
|
||
|
Функция rand()
|
|||
|---|---|---|---|
|
#18+
да, я пробовал работает, только бы при больших значениях ключей не было бы "переполнения", т.к. параметр РАНДа вроде ограничен по длине ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 13:18 |
|
||
|
Функция rand()
|
|||
|---|---|---|---|
|
#18+
Васильев Сергей Владимировичда, я пробовал работает, только бы при больших значениях ключей не было бы "переполнения", т.к. параметр РАНДа вроде ограничен по длине Ну так ограничьте значения ключей передаваемых в RAND арифметикой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 13:25 |
|
||
|
Функция rand()
|
|||
|---|---|---|---|
|
#18+
Try this: create table #test_rand (id int, col1 varchar(10)) go insert into #test_rand values (1,"some val a") insert into #test_rand values (2,"some val b") insert into #test_rand values (3,"some val c") go select '--------------Static--------------' go select id,rand() from #test_rand go select '--------------Dynamic--------------' go select t.id,(select rand() + t.id*0) RandomNumber from #test_rand t go ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 13:42 |
|
||
|
Функция rand()
|
|||
|---|---|---|---|
|
#18+
just_meTry this: create table #test_rand (id int, col1 varchar(10)) go insert into #test_rand values (1,"some val a") insert into #test_rand values (2,"some val b") insert into #test_rand values (3,"some val c") go select '--------------Static--------------' go select id,rand() from #test_rand go select '--------------Dynamic--------------' go select t.id,(select rand() + t.id*0) RandomNumber from #test_rand t go А какой тут результат? У меня чего-то не то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2006, 08:55 |
|
||
|
Функция rand()
|
|||
|---|---|---|---|
|
#18+
Все разобрался, что к чему, все окей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2006, 09:07 |
|
||
|
Функция rand()
|
|||
|---|---|---|---|
|
#18+
Я меня еще не только выборка случаной строки из БД, но и еще по условию, а точнее по диапозону дат вообщем у меня сейчас так CREATE PROCEDURE dbo.mod_happy_ticket_HReg ( @startdate DateTime, @finishdate DateTime ) AS BEGIN set rowcount 1 select t.IdRegistration, Phone, (select rand(t.IdRegistration)+t.phone) RandomNumber from mod_happy_ticket t WHERE t.datetime>@startdate AND t.datetime<@finishdate ORDER BY RandomNumber END Все работает, вот, правдо при многократных запусках на неизменном наборе данных получается. одна и таже строка, т.е. как бы не рандомайза, но мне этого и не требуется Вопросы 1) В конце надо сбрасывать rowcount set rowcount 0 2) При больших значения IdRegistration rand(t.IdRegistration) переполнения не будет ранда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2006, 14:33 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=33964469&tid=2012566]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 374ms |

| 0 / 0 |
