sql >> Database >  >> RDS >> Sqlserver

RAND() Voorbeelden in SQL Server

In SQL Server is de T-SQL RAND() functie stelt u in staat om een ​​willekeurig getal te genereren. Het retourneert met name een pseudo-willekeurige float-waarde van 0 tot en met 1, exclusief.

De functie accepteert een optioneel argument dat de seed-waarde levert. Voor elke gegeven seed-waarde zullen de resultaten altijd hetzelfde zijn.

Syntaxis

De syntaxis gaat als volgt:

RAND ( [ seed ] ) 

Waar zaad is een integer-expressie (tinyint, smallint of int) die de beginwaarde geeft. Als dit argument niet wordt opgegeven, wijst SQL Server willekeurig een seed toe.

Voorbeeld 1 – Geen argumenten

Hier is een eenvoudig voorbeeld om te laten zien wat er gebeurt als we geen argument geven.

SELECT RAND() Result;

Resultaat:

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

Het resultaat is geen constante - het zal elke keer dat u het uitvoert anders zijn.

Hier is een voorbeeld van wat er gebeurt als we meerdere RAND() . uitvoeren functies samen.

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

Resultaat:

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

Voorbeeld 2 – Een startwaarde gebruiken

Zoals vermeld, kunt u een argument doorgeven om de seed-waarde te bepalen. Hiermee kunt u de uitvoer van de functie beïnvloeden.

SELECT RAND(8) Result;

Resultaat:

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

In dit geval retourneert de functie elke keer dezelfde waarde als een gelijke argumentwaarde wordt opgegeven. Dit wordt gedemonstreerd in het volgende voorbeeld:

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

Resultaat:

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

We hebben de functie drie keer uitgevoerd. En omdat we elke keer hetzelfde zaadje gebruikten, waren de resultaten allemaal hetzelfde.

Voorbeeld 3 – RAND() gebruiken als onderdeel van een expressie

U kunt de RAND() . gebruiken functioneren als onderdeel van een uitdrukking.

SELECT RAND()*10 Result;

Resultaat:

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

Voorbeeld 4 – Het resultaat afronden

We kunnen het fractionele deel ook verwijderen door de functie te nesten in een functie zoals FLOOR() of CEILING() .

SELECT CEILING(RAND()*10) Result;

Resultaat:

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

Voorbeeld 5 – Een willekeurig geheel getal tussen twee getallen teruggeven

Je kunt ook aangeven dat het willekeurige getal tussen twee getallen moet liggen.

Hier is een voorbeeld van het genereren van een willekeurig getal tussen 5 en 10 (inclusief).

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

Resultaat:

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

Laten we dezelfde code meerdere keren uitvoeren om de wisselende resultaten te zien.

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

Resultaat:

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

  1. Basis Oracle Trigger-controletabel

  2. Hoe u uw MySQL- of MariaDB-database kunt beschermen tegen SQL-injectie:deel twee

  3. kolom toevoegen aan mysql-tabel als deze niet bestaat

  4. Werken met Java-gegevens in Alteryx