Thread View: be.comp.programming
4 messages
4 total messages
Started by Tom Discart
Thu, 17 Oct 2002 14:16
[SQL Server] Random recordset terugkrijgen op select
Author: Tom Discart
Date: Thu, 17 Oct 2002 14:16
Date: Thu, 17 Oct 2002 14:16
11 lines
1708 bytes
1708 bytes
Ik zou graag een random recordset terugkrijgen uit een select op SQLServer 7. Het zou volgens http://www.experts-exchange.com/Databases/Microsoft_SQL_Server/Q_10350443.ht ml#1 op deze manier kunnen. SELECT * FROM tablename ORDER BY RAND() Maar... bij mij krijg ik steeds dezelfde recordset terug. Hoe zou ik dit op kunnen oplossen? Bijvoorkeur een random in mijn stored procedure. Alvast bedankt
Re: [SQL Server] Random recordset terugkrijgen op select
Author: Tom Discart
Date: Thu, 17 Oct 2002 14:31
Date: Thu, 17 Oct 2002 14:31
20 lines
1989 bytes
1989 bytes
"Tom Discart" wrote in message > Ik zou graag een random recordset terugkrijgen uit een select op SQLServer > 7. > Het zou volgens > http://www.experts-exchange.com/Databases/Microsoft_SQL_Server/Q_10350443.ht > ml#1 op deze manier kunnen. > SELECT * FROM tablename ORDER BY RAND() > > Maar... bij mij krijg ik steeds dezelfde recordset terug. > Hoe zou ik dit op kunnen oplossen? > Bijvoorkeur een random in mijn stored procedure. > Alvast bedankt > Ik heb iets gevonden dat goed werkt... select * from <table> order by rand(<PK> * 1000.0 * datepart(ms, getdate( ) ) ) Tom
Re: [SQL Server] Random recordset terugkrijgen op select
Author: SLE
Date: Thu, 17 Oct 2002 14:34
Date: Thu, 17 Oct 2002 14:34
34 lines
2600 bytes
2600 bytes
"Tom Discart" <nospam_tom.discart@pandora.be> schreef in bericht
news:XCzr9.3769$P93.497539197@hestia.telenet-ops.be...
> Ik zou graag een random recordset terugkrijgen uit een select op SQLServer
> 7.
> Het zou volgens
>
http://www.experts-exchange.com/Databases/Microsoft_SQL_Server/Q_10350443.ht
> ml#1 op deze manier kunnen.
> SELECT * FROM tablename ORDER BY RAND()
>
> Maar... bij mij krijg ik steeds dezelfde recordset terug.
> Hoe zou ik dit op kunnen oplossen?
Uit SQL Server Books Online:
A common way to generate random numbers from RAND is to include something
relatively variable as the seed value, such as adding several parts of a
GETDATE:
SELECT RAND( (DATEPART(mm, GETDATE()) * 100000 )
+ (DATEPART(ss, GETDATE()) * 1000 )
+ DATEPART(ms, GETDATE()) )
When you use an algorithm based on GETDATE to generate seed values, RAND can
still generate duplicate values if the calls to RAND are made within the
interval of the smallest datepart used in the algorithm. This is especially
likely if the calls to RAND are included in a single batch. Multiple calls
to RAND in a single batch can be executed within the same millisecond, which
is the smallest increment of DATEPART. In this case, incorporate a value
based on something other than time to generate the seed values.
--
SLE
Re: [SQL Server] Random recordset terugkrijgen op select
Author: Toni Van Remortel
Date: Thu, 17 Oct 2002 14:34
Date: Thu, 17 Oct 2002 14:34
22 lines
2034 bytes
2034 bytes
Tom Discart wrote:
> Ik zou graag een random recordset terugkrijgen uit een select op SQLServer
> 7.
> Het zou volgens
>
http://www.experts-exchange.com/Databases/Microsoft_SQL_Server/Q_10350443.ht
> ml#1 op deze manier kunnen.
> SELECT * FROM tablename ORDER BY RAND()
>
> Maar... bij mij krijg ik steeds dezelfde recordset terug.
> Hoe zou ik dit op kunnen oplossen?
> Bijvoorkeur een random in mijn stored procedure.
> Alvast bedankt
SELECT * FROM tablename ORDER BY RAND(NOW() + 0)
Zo gebruikt hij de tijd als random-seed. Die +0 zet de tijd om in
Unix-formaat (is korter dan UNIX_TIMESTAMP(NOW()) )
--
$Toni->Groeten();
$Toni->SetQuote("$ man woman \n No manual entry for woman");
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads