Partage via


RAND (Transact-SQL)

S’applique à : SQL Server base de données Azure SQL Azure SQL Managed Instance Azure Synapse Analytics

Retourne une valeur float pseudo-aléatoire, comprise entre 0 et 1, valeurs exclues.

Conventions de la syntaxe Transact-SQL

Syntaxe

RAND ( [ seed ] )

Notes

Cette syntaxe n’est pas prise en charge par le pool SQL serverless dans Azure Synapse Analytics.

Arguments

seed

Expression entière (tinyint, smallint ou int) qui fournit la valeur de départ. Si la valeur seed n’est pas spécifiée, le Moteur de base de données SQL Server affecte une valeur de départ aléatoire. Pour une valeur de départ spécifiée, le résultat retourné est toujours le même.

Types de retour

float

Notes

Les appels répétitifs de RAND() avec la même valeur de départ retournent les mêmes résultats.

  • Pour une connexion, si RAND() est appelé avec une valeur de départ spécifiée, tous les appels ultérieurs de RAND() produisent des résultats en fonction de l’appel de départ RAND(). Ainsi, la requête suivante produit toujours la même séquence de numéros.

    SELECT RAND(100), RAND(), RAND();
    
  • Lorsque vous utilisez la fonction RAND() dans une requête UPDATE ou INSERT, toutes les lignes affectées obtiennent la même valeur.

Exemples

L’exemple suivant produit quatre numéros aléatoires différents avec la fonction RAND().

DECLARE @counter SMALLINT;

SET @counter = 1;

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

Voir aussi