मुझे लगता है कि आप ऐसा कुछ बहुत आसान और बहुत आसान कर सकते हैं
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 को अपनी उच्चतम सीमा संख्या से बदल सकते हैं।