SQL取随机值问题

wdxgdiy 2010-11-29 11:32:17
要求从1000至 99999之间取一个随机值 但是不包含数据库中某列的值

数据库表T结构(值为用户添加的 不断增加的)
VALUE
22
33
432
5


也就是说这个随机数不能包含 这一列的值 请问这个要怎样编写语句
...全文
89 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2010-11-29
  • 打赏
  • 举报
回复
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
oO寒枫Oo 2010-11-29
  • 打赏
  • 举报
回复

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
fpzgm 2010-11-29
  • 打赏
  • 举报
回复
select cast( floor(rand()*100000) as int)
except
select cast( floor(rand()*1000) as int)
except
select value from t
feilniu 2010-11-29
  • 打赏
  • 举报
回复

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

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧