Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Wygeneruj losową liczbę, której nie ma w tabeli na serwerze sql

Jeszcze inna opcja, zawsze lubiłem NEWID() do losowego porządkowania i łączenia krzyżowe bardzo wydajnie twórz wiele wierszy:

;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. Jak sformatować czas z dd:gg:mm:ss do tylko gg:mm:ss w serwerze SQL?

  2. Jak działa SET ROWCOUNT w SQL Server

  3. SQL Server:Jak wywołać funkcję zdefiniowaną przez użytkownika (UDF) na serwerze połączonym?

  4. Importowanie Excela do bazy danych SQL za pomocą vb.net i asp.net

  5. Warunki NULL w SQL Server