34,590
社区成员
发帖
与我相关
我的任务
分享
DECLARE @i INT
SET @i=ABS(CHECKSUM(NEWID()))%99000+1000
WHILE EXISTS(SELECT 1 FROM Table1 WHERE VALUE=@i)
SET @i=ABS(CHECKSUM(NEWID()))%99000+1000
SELECT @i
create table T (value int)
insert into T values(22)
insert into T values(33)
insert into T values(432)
insert into T values(5)
select cast((rand()*(99999-1000)+1000) as int)
except
select cast(value as int) from t
select cast( floor(rand()*100000) as int)
except
select cast( floor(rand()*1000) as int)
except
select value from t
WITH T AS(SELECT v = 22 UNION ALL SELECT 33 UNION ALL SELECT 1432 UNION ALL SELECT 1005)
SELECT TOP(1) n.n
FROM dbo.Nums n
WHERE n.n BETWEEN 1000 AND 99999
AND NOT EXISTS (SELECT * FROM T WHERE T.v = n.n)
ORDER BY NEWID()