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

Tạo một số ngẫu nhiên không có trong bảng trong máy chủ sql

Tuy nhiên, một tùy chọn khác, tôi luôn thích NEWID() để sắp xếp ngẫu nhiên và kết hợp chéo tạo ra nhiều hàng rất hiệu quả:

;with cte AS (SELECT 1 n UNION ALL SELECT 1)
     ,cte2 AS (SELECT TOP 100 ROW_NUMBER() OVER(ORDER BY a.n) n
               FROM cte a,cte b,cte c,cte d, cte e, cte f, cte g)
SELECT TOP 1 n
FROM cte2 a
WHERE NOT EXISTS (SELECT 1
                  FROM randomNums b
                  WHERE a.n = b.num)
ORDER BY NEWID()

Demo: SQL Fiddle



  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ài đặt và cấu hình SQL Server Log Shipping &Disaster Recovery -4

  2. Điểm danh VÀO VÀ NGOÀI

  3. Đặt lại AutoIncrement trong SQL Server sau khi Xóa

  4. CHỌN hàng có thời gian từ 30 phút trở xuống?

  5. Triển khai quan hệ một-không-một trong SQL Server