
RANDOM o funzione scalare di RAND
La funzione RANDOM restituisce un valore casuale in virgola mobile compreso tra 0 e 1. Un argomento può essere specificato come valore di seme opzionale.
- 1 FL 506 RANDOM è un nome recentemente supportato per la funzione RAND.


Lo schema è SYSIBM.
- espressione numerica
- Se viene specificata un'espressione numerica, questa viene utilizzata come valore iniziale. L'argomento deve essere un'espressione che restituisce un valore di un tipo di dati intero incorporato (SMALLINT o INTEGER). Il valore deve essere compreso tra 0 e 2.147.483.646.
L'argomento può anche essere una stringa di caratteri o un tipo di dati di stringa grafica. L'input stringa viene implicitamente convertito in un valore numerico di DECFLOAT(34) e quindi assegnato a un valore INTEGER.
Il risultato della funzione è un numero in virgola mobile a doppia precisione.
Il risultato può essere nullo; se l'argomento è nullo, il risultato è il valore nullo.
Un valore seme specifico, diverso da zero, produrrà la stessa sequenza di numeri casuali per un'istanza specifica di una funzione RANDOM in una query ogni volta che la query viene eseguita. Il valore del seme viene utilizzato solo per la prima chiamata di un'istanza della funzione RANDOM all'interno di un'istruzione. RANDOM(0) viene elaborato come un RANDOM().
Note
- Determinismo:
- RANDOM è una funzione non deterministica.
Esempi
- Esempio 1
- Supponiamo che la variabile host HRAND sia un INTEGER con valore 100. La seguente istruzione restituisce un numero a virgola mobile casuale nell'intervallo 0-1, come il valore approssimativo 0,0121398:
SELECT RANDOM(:HRAND) FROM SYSIBM.SYSDUMMY1; - Esempio
- Per generare valori in un intervallo numerico diverso da 0 a 1, moltiplicare la funzione RAND per la dimensione dell'intervallo desiderato. Ad esempio, per ottenere un numero casuale nell'intervallo 0-10, come il valore approssimativo 5.8731398, moltiplica la funzione per 10:
SELECT (RANDOM(:HRAND) * 10) FROM SYSIBM.SYSDUMMY1;

