RAND (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

擬似乱数を返します float 0 ~ 1 の排他値。

Transact-SQL 構文表記規則

構文

RAND ( [ seed ] )

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

Note

この構文は、Azure Synapse Analytics のサーバーレス SQL プールでサポートされていません。

引数

seed

シード値を指定する整数の (tinyintsmallint、または int)。 seed が指定されていない場合、SQL Server データベース エンジンがシード値をランダムに割り当てます。 指定したシード値について、返される結果は常に同じです。

戻り値の型

float

注釈

同じシード値を使用して RAND() を繰り返し呼び出しても、同じ結果が返されます。

  • 1 つの接続について、指定したシード値で RAND() を呼び出すと、以降のすべての RAND() の呼び出しで、シード値を指定した RAND() の呼び出しに基づいた結果が生成されます。 たとえば、次のクエリでは、同じ数値のシーケンスが常に返されます。

    SELECT RAND(100), RAND(), RAND();
    
  • UPDATE または INSERT クエリで RAND() 関数を使用すると、影響を受けるすべての行が同じ値を取得します。

次の例では、RAND() 関数によって 4 つの異なる乱数が生成されます。

DECLARE @counter SMALLINT;

SET @counter = 1;

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

関連項目