Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

RAND() Примери в SQL Server

В SQL Server, T-SQL RAND() функцията ви позволява да генерирате произволно число. По-конкретно, той връща псевдослучайна плаваща стойност от 0 до 1, изключителна.

Функцията приема незадължителен аргумент, който предоставя началната стойност. За всяка дадена начална стойност резултатите винаги ще бъдат едни и същи.

Синтаксис

Синтаксисът е така:

RAND ( [ seed ] ) 

Където семена е целочислен израз (tinyint, smallint или int), който дава началната стойност. Ако този аргумент не е предоставен, тогава SQL Server присвоява начало на случаен принцип.

Пример 1 – Без аргументи

Ето основен пример, който да демонстрира какво се случва, когато не предоставим аргумент.

SELECT RAND() Result;

Резултат:

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

Резултатът не е константа – той ще бъде различен всеки път, когато го стартирате.

Ето пример за това какво се случва, когато изпълним няколко RAND() функционира заедно.

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

Резултат:

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

Пример 2 – Използване на начална стойност

Както споменахме, можете да предадете аргумент, за да определите началната стойност. Това ви позволява да влияете на изхода на функцията.

SELECT RAND(8) Result;

Резултат:

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

В този случай функцията ще връща една и съща стойност всеки път, ако е предоставена еднаква стойност на аргумента. Това е демонстрирано в следния пример:

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

Резултат:

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

Изпълнихме функцията три пъти. И тъй като използвахме едно и също семе всеки път, резултатите бяха еднакви.

Пример 3 – Използване на RAND() като част от израз

Можете да използвате RAND() функция като част от израз.

SELECT RAND()*10 Result;

Резултат:

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

Пример 4 – Закръгляване на резултата

Можем също да премахнем дробната част, като вмъкнем функцията във функция като FLOOR() или CEILING() .

SELECT CEILING(RAND()*10) Result;

Резултат:

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

Пример 5 – Връщане на произволно цяло число между две числа

Можете също да посочите, че произволното число трябва да е между две числа.

Ето пример за генериране на произволно число между 5 и 10 (включително).

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

Резултат:

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

Нека стартираме един и същ код няколко пъти, за да видим различните резултати.

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

Резултат:

+------------+------------+------------+
| 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. Как да получите стойности, които не съдържат числа в SQL Server

  2. Резултати от заявка по имейл като HTML таблица в SQL Server (T-SQL)

  3. SQL Server 2016:Архивиране на база данни

  4. Преобразувайте „datetime2“ в „date“ в SQL Server (T-SQL примери)

  5. Ръководство за CTE в SQL Server