sql >> Database >  >> RDS >> Sqlserver

Genereer een willekeurig getal dat niet in een tabel op de sql-server staat

Nog een andere optie, ik heb NEWID() altijd leuk gevonden voor willekeurige volgorde en cross-joins creëer je heel efficiënt veel rijen:

;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. Nieuwe fout in spring boot 2.3.0.RELEASE:UnfinishedDependencyException voor Oracle 12.2.0.1 jdbcdriver maar niet met mysql jdbcdriver

  2. BESTELLEN BY in SQL PIVOT

  3. mySQL-fout:#1248 - Elke afgeleide tabel moet zijn eigen alias hebben

  4. Kan geen JDBC-verbinding maken met MySQL (met Java, IntelliJ en Linux)