Share via


RAND (Transact-SQL)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics

Restituisce un valore float pseudocasuale compreso tra 0 e 1 (esclusi).

Convenzioni di sintassi Transact-SQL

Sintassi

RAND ( [ seed ] )

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Nota

Questa sintassi non è supportata da pool SQL serverless in Azure Synapse Analytics.

Argomenti

seed

Espressione Integer (tinyint, smallint o int) che specifica il valore di inizializzazione. Se il valore di inizializzazione non è specificato, SQL Server motore di database assegna un valore di inizializzazione in modo casuale. Per un valore di inizializzazione specificato, il risultato restituito è sempre lo stesso.

Tipi restituiti

float

Osservazioni:

Le chiamate ripetitive di con lo stesso valore di RAND() inizializzazione restituiscono gli stessi risultati.

  • Per una connessione, se RAND() viene chiamato con un valore di inizializzazione specificato, tutte le chiamate successive di RAND() producono risultati in base alla chiamata con seeding RAND() . Ad esempio, la query seguente restituisce sempre la stessa sequenza di numeri.

    SELECT RAND(100), RAND(), RAND();
    
  • Quando si usa la RAND() funzione in una UPDATE query o INSERT , tutte le righe interessate ottengono lo stesso valore.

Esempi

Nell'esempio seguente vengono generati quattro numeri casuali diversi generati dalla RAND() funzione .

DECLARE @counter SMALLINT;

SET @counter = 1;

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

Vedi anche