SQL:RAND()返回随机数

参考:http://msdn.microsoft.com/zh-cn/library/ms177610.aspx

 

RAND (Transact-SQL)

SQL Server 2012
 

返回一个介于 0 到 1(不包括 0 和 1)之间的伪随机 float 值。

主题链接图标 Transact-SQL 语法约定

 
复制
RAND ( [ seed ] )
seed

提供种子值的整数表达式tinyintsmallintint)。如果未指定 seed,则 SQL Server 数据库引擎随机分配种子值。对于指定的种子值,返回的结果始终相同。

float

使用同一个种子值重复调用 RAND() 会返回相同的结果。

对于一个连接,如果使用指定的种子值调用 RAND(),则 RAND() 的所有后续调用将基于使用该指定种子值的 RAND() 调用生成结果。例如,以下查询将始终返回相同的数字序列。

 
复制
SELECT RAND(100), RAND(), RAND() 

以下示例将产生由 RAND 函数生成的四个不同的随机数。

 
复制
DECLARE @counter smallint;
SET @counter = 1;
WHILE @counter < 5
   BEGIN
      SELECT RAND() Random_Number
      SET @counter = @counter + 1
   END;
GO

 

我的测试结果:

SELECT RAND(100), RAND(), RAND() 
SELECT RAND(100), RAND(), RAND() 
SELECT RAND(100), RAND(), RAND() 

 

SELECT MemberId,MemberId+RAND(100) AS[MemberId+Rand()]
FROM MemberDetails

 

结果可以得出:要想得到不同的随机数,必须提供不同的种子才行....

 

 



posted @ 2012-10-24 10:47  KeenLeung  阅读(11357)  评论(0编辑  收藏  举报