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

Hasilkan nomor acak yang tidak ada di tabel di server sql

Pilihan lain, saya selalu menyukai NEWID() untuk pemesanan acak, dan gabungan silang membuat banyak baris dengan sangat efisien:

;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. Pernyataan ALTER TABLE bertentangan dengan batasan CHECK di SQL Server - Tutorial SQL Server / TSQL Bagian 89

  2. Cara Memformat Angka Sebagai Mata Uang di SQL Server (T-SQL)

  3. Apa gunanya kursor di SQL Server?

  4. Mengubah output Getdate

  5. Variabel tabel kinerja buruk saat dimasukkan dalam Prosedur Tersimpan SQL Server