Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Ví dụ về RAND () trong SQL Server

Trong SQL Server, T-SQL RAND() chức năng cho phép bạn tạo một số ngẫu nhiên. Cụ thể, nó trả về một giá trị float giả ngẫu nhiên từ 0 đến 1, độc quyền.

Hàm chấp nhận một đối số tùy chọn cung cấp giá trị hạt giống. Đối với bất kỳ giá trị gốc nhất định nào, kết quả sẽ luôn giống nhau.

Cú pháp

Cú pháp như sau:

RAND ( [ seed ] ) 

Nơi hạt giống là một biểu thức số nguyên (tinyint, smallint hoặc int) cung cấp giá trị hạt giống. Nếu đối số này không được cung cấp, thì SQL Server sẽ chỉ định một hạt giống ngẫu nhiên.

Ví dụ 1 - Không đối số

Dưới đây là một ví dụ cơ bản để chứng minh điều gì sẽ xảy ra khi chúng tôi không đưa ra đối số.

SELECT RAND() Result;

Kết quả:

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

Kết quả không phải là một hằng số - nó sẽ khác nhau mỗi khi bạn chạy nó.

Dưới đây là một ví dụ về những gì sẽ xảy ra khi chúng tôi chạy nhiều RAND() chức năng cùng nhau.

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

Kết quả:

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

Ví dụ 2 - Sử dụng Giá trị gốc

Như đã đề cập, bạn có thể chuyển vào một đối số để xác định giá trị hạt giống. Điều này cho phép bạn tác động đến kết quả đầu ra của hàm.

SELECT RAND(8) Result;

Kết quả:

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

Trong trường hợp này, hàm sẽ trả về cùng một giá trị mỗi lần nếu một giá trị đối số bằng nhau được cung cấp. Điều này được chứng minh trong ví dụ sau:

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

Kết quả:

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

Chúng tôi đã chạy hàm ba lần. Và bởi vì chúng tôi sử dụng cùng một loại hạt giống mỗi lần, nên tất cả các kết quả đều giống nhau.

Ví dụ 3 - Sử dụng RAND () như một phần của biểu thức

Bạn có thể sử dụng RAND() hoạt động như một phần của biểu thức.

SELECT RAND()*10 Result;

Kết quả:

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

Ví dụ 4 - Làm tròn Kết quả

Chúng ta cũng có thể loại bỏ phần phân số bằng cách lồng hàm vào bên trong một hàm như FLOOR() hoặc CEILING() .

SELECT CEILING(RAND()*10) Result;

Kết quả:

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

Ví dụ 5 - Trả về số nguyên ngẫu nhiên giữa hai số

Bạn cũng có thể chỉ định rằng số ngẫu nhiên phải nằm giữa hai số.

Dưới đây là một ví dụ về việc tạo một số ngẫu nhiên từ 5 đến 10 (bao gồm cả).

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

Kết quả:

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

Hãy chạy cùng một mã nhiều lần để xem các kết quả khác nhau.

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

Kết quả:

+------------+------------+------------+
| 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. Cập nhật bảng bằng cách sử dụng JOIN trong SQL Server?

  2. Tìm hiểu cách Lưu trữ và Phân tích Tài liệu trên Hệ thống Tệp Windows với Tìm kiếm Ngữ nghĩa SQL Server - Phần 1

  3. PHP Lỗi nghiêm trọng:Gọi đến hàm không xác định mssql_connect ()

  4. CHÈN VÀO @TABLE EXEC @query với SQL Server 2000

  5. Sắp xếp tự nhiên (chữ-số của con người) trong Microsoft SQL 2005