求sql 不重复的随机数

wfcfan 2009-08-09 12:21:41
现在要生成100W不重复的n位随机数,
求一个效率高的算法!


...全文
1909 61 打赏 收藏 转发到动态 举报
写回复
用AI写文章
61 条回复
切换为时间正序
请发表友善的回复…
发表回复
Delta 2009-08-12
  • 打赏
  • 举报
回复
学习并收藏了。
Eagle_ice 2009-08-11
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 liangck 的回复:]
SQL code转 zjcxc

最近在论坛看到有人问,如何快速生成100万不重复的8位编号,对于这个问题,有几点是需要注意的:1. 如何生成8位随机数,生成的数越随机,重复的可能性当然越小2. 控制不重复3. 考虑性能
针对这个问题,我写了如下的示例来解决,希望能为有这类需求的人提供指导


生成100万条8位不重复数据的示例USE tempdbGO-- 创建测试表CREATE¡­
[/Quote]
强大...
星火91314 2009-08-11
  • 打赏
  • 举报
回复
学习了
zzs_happy 2009-08-11
  • 打赏
  • 举报
回复
厉害,mark!
YangWenChaoX 2009-08-11
  • 打赏
  • 举报
回复
我用的GUID
小李木耳 2009-08-10
  • 打赏
  • 举报
回复
select 人 from 人类
where ROWNUM<=1百万
SQL77 2009-08-10
  • 打赏
  • 举报
回复
select TOP 10000 rn=identity(int),id=newid() into # from syscolumns a ,syscolumns b,syscolumns c,syscolumns d,syscolumns e

select ABS(CHECKSUM(ID))
from # a
where NOT exists(
select 1
from #
where id=a.id
and rn<>a.rn)

自己测一下就好了,弄不了那么多.回复内容过长
htl258_Tony 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 50 楼 wfcfan 的回复:]
数字
[/Quote]
看22楼.
jeansy911 2009-08-10
  • 打赏
  • 举报
回复
什么随机数。。。什么进制的?
wfcfan 2009-08-10
  • 打赏
  • 举报
回复
数字
bennyrongrong 2009-08-10
  • 打赏
  • 举报
回复
顶一个
振乾 2009-08-10
  • 打赏
  • 举报
回复
select top 100000 * from CS_Match_Stats order by NEWID()
SQL77 2009-08-09
  • 打赏
  • 举报
回复
SELECT CONVERT(INT,ABS(CHECKSUM(CONVERT(BINARY,NEWID()))),8)
--小F-- 2009-08-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 herowang 的回复:]
SQL codecreatetable TimeSquare_Code(idbigintidentity(1,1)PRIMARYKEYCLUSTERED,codebigint,statusintdefault0)gocreateprocedure sp_TimeSquare_randomcodeasinsertinto timesquare_Code(code)selecttop1000000 c¡­
[/Quote]

学习
  • 打赏
  • 举报
回复
create table TimeSquare_Code(id bigint identity(1,1) PRIMARY KEY CLUSTERED,code bigint,status int default 0)
go
create procedure sp_TimeSquare_randomcode
as
insert into timesquare_Code(code)
select top 1000000 code=900000000000*RAND(CHECKSUM(NEWID()))+100000000000 from syscolumns a,syscolumns b,syscolumns c
go
exec sp_timesquare_randomcode
go
select * from timesquare_code
go
drop table timesquare_code
drop procedure sp_TimeSquare_randomcode
feixianxxx 2009-08-09
  • 打赏
  • 举报
回复
declare @n int
set @n=? --n位
select top 1000000 left(abs(checksum(newid())),@n) as id
from syscolumns a ,syscolumns b,syscolumns c,syscolumns d,syscolumns e
feixianxxx 2009-08-09
  • 打赏
  • 举报
回复
select top 1000000 abs(checksum(newid()))  as id 
from syscolumns a ,syscolumns b,syscolumns c,syscolumns d,syscolumns e
sdhdy 2009-08-09
  • 打赏
  • 举报
回复
--随即生成100W不重复的6位数。
select top 1000000 left(abs(checksum(newid())),6) from syscolumns a ,syscolumns b,syscolumns c,syscolumns d,syscolumns e
--用时8秒。
feixianxxx 2009-08-09
  • 打赏
  • 举报
回复
select top 1000000 checksum(newid()) *1000000
from syscolumns a ,syscolumns b,syscolumns c,syscolumns d,syscolumns e
sdhdy 2009-08-09
  • 打赏
  • 举报
回复
select top 1000000 newid() from syscolumns a ,syscolumns b,syscolumns c,syscolumns d,syscolumns e
加载更多回复(40)
内容概要:SSD2828QN4是一款MIPI主桥接芯片,用于连接应用处理器与传统并行LCD接口及支持MIPI从属接口的LCD驱动器。该芯片支持最高每通道1Gbps的串行链路速度,最多可配置4个数据通道,显著减少了信号数量。它支持多种接口模式,包括RGB+SPI组合接口,适用于驱动智能或非智能显示面板,并能通过命令模式和视频模式传输数据。芯片内置时钟和复位模块、外部接口、协议控制单元(PCU)、包处理单元(PPU)、错误校正码/循环冗余校验(ECC/CRC)模块、长包和命令缓冲区、D-PHY控制器、模拟收发器以及内部锁相环(PLL),确保了高效的数据传输和系统稳定性。此外,文档详细描述了芯片的引脚分配、寄存器设置、操作模式、电源序列、时序特性等关键参数,为开发者提供了全面的技术指导。 适合人群:具备一定硬件设计基础,从事嵌入式系统开发、显示技术研究的研发人员。 使用场景及目标:①实现应用处理器与MIPI兼容显示屏之间的高速数据传输;②优化显示系统的功耗表现,减少电磁干扰(EMI);③通过灵活配置不同接口模式来适应各种显示设备的需。 阅读建议:此文档面向具有一定电子工程背景的专业人士,建议读者结合实际项目需深入理解各章节内容,特别是关于寄存器配置、时序要等方面的具体说明。对于初次接触此类技术的开发者而言,建议先熟悉基本概念再逐步掌握高级功能的应用方法。

34,875

社区成员

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

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