Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Генерирайте уникални произволни числа с помощта на SQL

Предполагам, че бихте могли да направите нещо подобно много по-лесно и много по-лесно

DECLARE @Upper INT;
DECLARE @Lower INT;
SET @Lower = 1;     /* -- The lowest random number */
SET @Upper = 49;    /* -- The highest random number */
    
    
SELECT @Lower + CONVERT(INT, (@[email protected]+1)*RAND());

За получаване на произволно число без повторение, това ще свърши работа

WITH CTE 
AS
(
    SELECT  randomNumber, COUNT(1) countOfRandomNumber
    FROM (
    SELECT ABS(CAST(NEWID() AS binary(6)) %49) + 1 randomNumber
    FROM sysobjects
    ) sample
    GROUP BY randomNumber
)
SELECT TOP 5 randomNumber
FROM CTE
ORDER BY newid() 

За да зададете най-високия лимит, можете да замените 49 с най-високия лимит.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 начина за създаване на таблица, ако тя не съществува в SQL Server

  2. Как автоматично да добавите 1 година дата към съществуваща дата в SQL Server

  3. Как да инсталирате SQL Server Manager Studio (SSMS) - SQL Server / TSQL урок, част 1

  4. Как да преименувате ограничение на първичния ключ за множество таблици в база данни на SQL Server - SQL Server / TSQL урок, част 64

  5. Entity Framework 4 Code First - Предотвратяване на изпускане/създаване на DB