sql >> Database >  >> RDS >> Sqlserver

Genereer unieke willekeurige getallen met behulp van SQL

Ik denk dat je zoiets veel eenvoudiger en veel gemakkelijker zou kunnen doen

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

Om een ​​willekeurig nummer te krijgen zonder herhaling, zal dit het werk doen

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

Om de hoogste limiet in te stellen, kun je 49 vervangen door je hoogste limiet.



  1. Selecteer de 3 meest recente records waar de waarden van één kolom verschillend zijn

  2. mysql vervang tekst in een veld php

  3. Oracle vóór invoegen OF update-triggervoorbeeld

  4. Password salts -- Doe ik het goed?