Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana saya bisa mengisi kolom dengan angka acak di SQL? Saya mendapatkan nilai yang sama di setiap baris

Alih-alih rand() , gunakan newid() , yang dihitung ulang untuk setiap baris dalam hasil. Cara yang biasa adalah dengan menggunakan modulo dari checksum. Perhatikan bahwa checksum(newid()) dapat menghasilkan -2.147.483.648 dan menyebabkan integer overflow pada abs() , jadi kita perlu menggunakan modulo pada nilai kembalian checksum sebelum mengubahnya menjadi nilai absolut.

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

Ini menghasilkan angka acak antara 0 dan 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. Cara Memperbaiki SQL Server Mendeteksi Kesalahan I/O Berbasis Konsistensi Logis

  2. Menggunakan kondisi if dalam menyisipkan SQL Server

  3. Rekursi CTE untuk mendapatkan hierarki pohon

  4. Lakukan while loop di SQL Server 2008

  5. Pemulihan Cadangan Paralel SQL Server -2