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

Tạo số ngẫu nhiên duy nhất bằng SQL

Tôi đoán bạn có thể làm điều gì đó như thế này đơn giản và dễ dàng hơn nhiều

DECLARE @Upper INT;
DECLARE @Lower INT;
SET @Lower = 1;     /* -- The lowest random number */
SET @Upper = 49;    /* -- The highest random number */
    
    
SELECT @Lower + CONVERT(INT, (@[email protected]+1)*RAND());

Để nhận một số ngẫu nhiên mà không lặp lại, điều này sẽ thực hiện công việc

WITH CTE 
AS
(
    SELECT  randomNumber, COUNT(1) countOfRandomNumber
    FROM (
    SELECT ABS(CAST(NEWID() AS binary(6)) %49) + 1 randomNumber
    FROM sysobjects
    ) sample
    GROUP BY randomNumber
)
SELECT TOP 5 randomNumber
FROM CTE
ORDER BY newid() 

Để đặt giới hạn cao nhất, bạn có thể thay thế 49 bằng số giới hạn cao nhất của mình.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giới thiệu về SQL Server 2017

  2. Cách thiết lập đám mây Spotlight và khắc phục sự cố máy chủ SQL một cách hiệu quả

  3. Vòng lặp while trong SQL Server 2008 lặp qua phạm vi ngày và sau đó CHÈN

  4. Hiểu mối quan hệ giữa các hàm xếp hạng, OVER (), GROUP BY?

  5. 3 cách trả về tất cả các bảng KHÔNG có khóa chính trong SQL Server