sql >> Database teknologi >  >> RDS >> Sqlserver

Generer et tilfældigt tal, som ikke er der i en tabel i sql server

Endnu en mulighed, jeg har altid kunne lide NEWID() for tilfældig bestilling, og krydsforbindelser skaber mange rækker meget 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. PHP MySQL Google Chart JSON - Komplet eksempel

  2. EM12c Database Tid brugt på at vente på advarsler

  3. Oracle:angiver standardværdi for objekttypekolonnen

  4. Mysql:Tæl poster (inklusive nul) pr. måned