sql >> Databáze >  >> RDS >> Sqlserver

Příklady RAND() v SQL Server

V SQL Serveru T-SQL RAND() funkce umožňuje generovat náhodné číslo. Konkrétně vrací pseudonáhodnou plovoucí hodnotu od 0 do 1, exkluzivní.

Funkce přijímá volitelný argument, který poskytuje počáteční hodnotu. Pro jakoukoli danou počáteční hodnotu budou výsledky vždy stejné.

Syntaxe

Syntaxe vypadá takto:

RAND ( [ seed ] ) 

Kde semeno je celočíselný výraz (tinyint, smallint nebo int), který udává počáteční hodnotu. Pokud tento argument není zadán, SQL Server přiřadí semeno náhodně.

Příklad 1 – Žádné argumenty

Zde je základní příklad, který demonstruje, co se stane, když neuvedeme argument.

SELECT RAND() Result;

Výsledek:

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

Výsledek není konstantní – při každém spuštění se bude lišit.

Zde je příklad toho, co se stane, když spustíme více RAND() fungují společně.

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

Výsledek:

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

Příklad 2 – Použití počáteční hodnoty

Jak již bylo zmíněno, můžete předat argument k určení počáteční hodnoty. To vám umožní ovlivnit výstup funkce.

SELECT RAND(8) Result;

Výsledek:

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

V tomto případě funkce vrátí stejnou hodnotu pokaždé, když je zadána stejná hodnota argumentu. To je ukázáno v následujícím příkladu:

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

Výsledek:

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

Funkci jsme spustili třikrát. A protože jsme pokaždé použili stejné semeno, výsledky byly všechny stejné.

Příklad 3 – Použití RAND() jako součásti výrazu

Můžete použít RAND() fungovat jako součást výrazu.

SELECT RAND()*10 Result;

Výsledek:

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

Příklad 4 – Zaokrouhlení výsledku

Můžeme také odstranit zlomkovou část vnořením funkce do funkce, jako je FLOOR() nebo CEILING() .

SELECT CEILING(RAND()*10) Result;

Výsledek:

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

Příklad 5 – Vrácení náhodného celého čísla mezi dvěma čísly

Můžete také určit, že náhodné číslo musí být mezi dvěma čísly.

Zde je příklad generování náhodného čísla mezi 5 a 10 (včetně).

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

Výsledek:

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

Spusťte stejný kód několikrát, abyste viděli různé výsledky.

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';

Výsledek:

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

  1. Jak zalomit dlouhé řádky textu ve výsledcích SQLite

  2. Jak MICROSECOND() funguje v MariaDB

  3. ZDLRA – RMAN-20035 neplatná vysoká RECID

  4. Vytvořte entitu místnosti pro tabulku, která má pole s datovým typem LONG ve Sqlite