RAND (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse Analytics

傳回介於 0 到 1 (不含) 之間的似隨機 float

Transact-SQL 語法慣例

Syntax

RAND ( [ seed ] )

注意

若要檢視 SQL Server 2014 (12.x) 和舊版的 Transact-SQL 語法,請參閱 舊版檔

注意

Azure Synapse Analytics 的無伺服器 SQL 集區不支援此語法。

引數

seed

為提供初始值的整數運算式 (tinyintsmallint,或 int)。 如果未指定 seed,SQL Server 資料庫引擎 會隨機指派種子值。 只要指定初始值之後,傳回的結果一律相同。

傳回類型

float

備註

具有相同種子值的重複呼叫 RAND() 會傳回相同的結果。

  • 如果是一個連接,如果RAND()以指定的種子值呼叫,則所有後續呼叫都會根據植入RAND()的呼叫RAND()產生結果。 例如,下列查詢一律會傳回相同的數位序列。

    SELECT RAND(100), RAND(), RAND();
    
  • 當您在 或 INSERT 查詢中使用 UPDATERAND()式時,所有受影響的數據列都會取得相同的值。

範例

下列範例會產生函式所產生的 RAND() 四個不同的隨機數。

DECLARE @counter SMALLINT;

SET @counter = 1;

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

另請參閱