Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

RAND() Przykłady w SQL Server

W SQL Server funkcja T-SQL RAND() funkcja pozwala na wygenerowanie liczby losowej. W szczególności zwraca pseudolosową wartość zmiennoprzecinkową od 0 do 1, wyłączną.

Funkcja przyjmuje opcjonalny argument, który dostarcza wartość inicjatora. Dla dowolnej wartości nasion wyniki będą zawsze takie same.

Składnia

Składnia wygląda tak:

RAND ( [ seed ] ) 

Gdzie ziarno jest wyrażeniem całkowitym (tinyint, smallint lub int), które podaje wartość inicjatora. Jeśli ten argument nie zostanie podany, SQL Server losowo przypisze ziarno.

Przykład 1 – brak argumentów

Oto podstawowy przykład pokazujący, co się dzieje, gdy nie dostarczamy argumentów.

SELECT RAND() Result;

Wynik:

+--------------------+
| Result             |
|--------------------|
| 0.0354675287734768 |
+--------------------+

Wynik nie jest stały – za każdym razem będzie inny.

Oto przykład tego, co się dzieje, gdy uruchamiamy wiele funkcji RAND() działa razem.

SELECT 
  RAND() 'Result 1',
  RAND() 'Result 2',
  RAND() 'Result 3';

Wynik:

+-------------------+------------------+--------------------+
| Result 1          | Result 2         | Result 3           |
|-------------------+------------------+--------------------|
| 0.999568268427369 | 0.40098746841349 | 0.0606836711764244 |
+-------------------+------------------+--------------------+

Przykład 2 – Korzystanie z wartości początkowej

Jak wspomniano, możesz przekazać argument, aby określić wartość inicjatora. Pozwala to wpływać na wyjście funkcji.

SELECT RAND(8) Result;

Wynik:

+-------------------+
| Result            |
|-------------------|
| 0.713722424011731 |
+-------------------+

W takim przypadku funkcja zwróci tę samą wartość za każdym razem, jeśli zostanie podana równa wartość argumentu. Pokazuje to następujący przykład:

SELECT 
  RAND(8) 'Result 1',
  RAND(8) 'Result 2',
  RAND(8) 'Result 3';

Wynik:

+-------------------+-------------------+-------------------+
| Result 1          | Result 2          | Result 3          |
|-------------------+-------------------+-------------------|
| 0.713722424011731 | 0.713722424011731 | 0.713722424011731 |
+-------------------+-------------------+-------------------+

Uruchomiliśmy tę funkcję trzy razy. A ponieważ za każdym razem używaliśmy tego samego materiału siewnego, wyniki były takie same.

Przykład 3 – Używanie RAND() jako części wyrażenia

Możesz użyć RAND() funkcjonować jako część wyrażenia.

SELECT RAND()*10 Result;

Wynik:

+------------------+
| Result           |
|------------------|
| 3.32720913214171 |
+------------------+

Przykład 4 – zaokrąglanie wyniku

Możemy również usunąć część ułamkową, zagnieżdżając funkcję wewnątrz funkcji, takiej jak FLOOR() lub CEILING() .

SELECT CEILING(RAND()*10) Result;

Wynik:

+----------+
| Result   |
|----------|
| 3        |
+----------+

Przykład 5 – Zwrócenie losowej liczby całkowitej między dwiema liczbami

Możesz również określić, że liczba losowa musi znajdować się między dwiema liczbami.

Oto przykład generowania liczby losowej od 5 do 10 (włącznie).

SELECT FLOOR(RAND()*(10-5+1)+5) Result;

Wynik:

+----------+
| Result   |
|----------|
| 9        |
+----------+

Uruchommy ten sam kod wiele razy, aby zobaczyć różne wyniki.

SELECT 
  FLOOR(RAND()*(10-5+1)+5) 'Result 1',
  FLOOR(RAND()*(10-5+1)+5) 'Result 2',
  FLOOR(RAND()*(10-5+1)+5) 'Result 3';

Wynik:

+------------+------------+------------+
| Result 1   | Result 2   | Result 3   |
|------------+------------+------------|
| 10         | 7          | 6          |
+------------+------------+------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uzyskaj właściwą część ciągu w SQL Server (T-SQL)

  2. Jak uzyskać listę kolumn z unikalnymi ograniczeniami w bazie danych SQL Server — samouczek SQL Server / TSQL część 98?

  3. Wstaw wszystkie dane z datagridview do bazy danych na raz

  4. Jak przekazać parametr do zapytania mssql w węźle js

  5. Jak wyświetlić listę dostępnych wystąpień SQL Server przy użyciu SMO w C#?