Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: SQL Server
Expertise: Beginner
Nov 20, 1998

RAND Function

Question:
I'm doing a select statement within a stored procedure, which returns several columns. I would like to assign a random number to each column, but when I use the following statement, the random number gets applied to each column. How can I do this?

Select MyTable.UniqueId, rand(10) as RandNum from MyTable where MyTable.UniqueId in (1,2,3,4,5,6)

I get:
1 .125
2 .125
3 .125
4 .125

I want:
1 .1532
2 .3325
3 .2525
4 .6626

Answer:
The problem is twofold. First of all, rand(10) will always return the same number. You have to either not provide a seed, or come up with a way of picking a "random" seed. You can use parts of the date.

Second, the select is one statement. The rand function gets executed only once, just like the getdate function doesn't return different values. You would need to use a cursor to traverse the table and use the rand function on each row.

DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date