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

 

結果可以得出:要想得到不同的隨機數,必須提供不同的種子才行....

 

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM