日期:2014-05-18  浏览次数:20609 次

如何获取8位的当天无重复的随机数。
如何获取8位的当天无重复的随机数。

请教 SQL server 和 ORACLE 的写法?

SQL SERVER 我是这样写的:
SELECT CAST (RAND() *99999999 AS INT ) AS NUM 这样不知道会不会出现重复?

------解决方案--------------------
SQL code

select top 1000 id = RIGHT(100000000 + CONVERT(bigint, ABS(CHECKSUM(NEWID()))), 8)
 from dbo.spt_values a,dbo.spt_values b,dbo.spt_values c

------解决方案--------------------
将你得到的数据保存到临时#Table,若是有重复的就重新获得。
declare @i int
set @i=0
while @i<5
 begin
select @I= Count(distinct NUM) from #a

insert into #a
SELECT CAST (RAND() *10 AS INT ) AS NUM
end