sql >> Databáze >  >> RDS >> Sqlserver

Vygenerujte náhodné číslo, které není v tabulce na serveru SQL

Ještě další možnost, vždy se mi líbil NEWID() pro náhodné řazení a křížové spoje vytvářejí mnoho řádků velmi efektivně:

;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()

Ukázka:SQL Fiddle



  1. MySQL ODBC Link selže kvůli odmítnutí autentizačního protokolu

  2. Jak nahradit poslední výskyt podřetězce v MYSQL?

  3. Python and Django OperationalError (2006, 'MySQL server zmizel')

  4. Entity Framework – mnoho k mnoha?