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

Làm cách nào để điền vào một cột với các số ngẫu nhiên trong SQL? Tôi nhận được cùng một giá trị trong mọi hàng

Thay vì rand() , sử dụng newid() , được tính toán lại cho mỗi hàng trong kết quả. Cách thông thường là sử dụng modulo của tổng kiểm tra. Lưu ý rằng checksum(newid()) có thể tạo ra -2,147,483,648 và gây tràn số nguyên trên abs() , vì vậy chúng ta cần sử dụng modulo trên giá trị trả về tổng kiểm tra trước khi chuyển đổi nó thành giá trị tuyệt đối.

UPDATE CattleProds
SET    SheepTherapy = abs(checksum(NewId()) % 10000)
WHERE  SheepTherapy IS NULL

Điều này tạo ra một số ngẫu nhiên từ 0 đến 9999.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nội bộ sao chép giao dịch SQL Server

  2. Làm thế nào để truy vấn các giá trị từ các nút xml?

  3. Toán tử OR Ngắn mạch trong SQL Server

  4. Truy vấn dữ liệu bằng cách kết hợp hai bảng trong hai cơ sở dữ liệu trên các máy chủ khác nhau

  5. Cách lấy lịch Quý từ một ngày trong TSQL