sql >> Databasteknik >  >> RDS >> Sqlserver

Generera ett slumptal som inte finns i en tabell i sql server

Ännu ett alternativ, jag har alltid gillat NEWID() för slumpmässig ordning, och korskopplingar skapar många rader mycket effektivt:

;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. Hur konfigurerar man Ruby on Rails med Oracle?

  2. Om RM-formatelementet i Oracle

  3. Hur man gör en räkningsfråga baserad på en dag i oracle sql

  4. UPDATE-satsen kom i konflikt med REFERENCE-begränsningen - SQL Server / TSQL Tutorial Del 76