如何获取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