社区
疑难问题
帖子详情
SQL rand()函数
zhang1you2huan
2010-07-25 10:24:45
SQL使用随机数算法,在开户时自动产生18位随机卡号,怎样用存储过程实现?怎样自动产生18位随机卡号?
...全文
166
6
打赏
收藏
SQL rand()函数
SQL使用随机数算法,在开户时自动产生18位随机卡号,怎样用存储过程实现?怎样自动产生18位随机卡号?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhang1you2huan
2010-08-01
打赏
举报
回复
详解见下方:
产生随机卡号的存储过程(一般用当前月份数\当前秒数\当前毫秒数乘以一定的系数作为随机种子)
create procedure proc_randCardID @randCardID char(19) OUTPUT
AS
DECLARE @r numeric(15,8)
DECLARE @tempStr char(10)
SELECT @r=RAND((DATEPART(mm, GETDATE()) * 100000 )+ (DATEPART(ss, GETDATE()) * 1000 )
+ DATEPART(ms, GETDATE()) )
set @tempStr=convert(char(10),@r) --产生0.xxxxxxxx的数字,我们需要小数点后的八位数字
set @randCardID='1010 3576 '+SUBSTRING(@tempStr,3,4)+' '+SUBSTRING(@tempStr,7,4) --组合为规定格式的卡号
GO
--测试产生随机卡号
DECLARE @mycardID char(19)
EXECUTE proc_randCardID @mycardID OUTPUT
print '产生的随机卡号为:'+@mycardID
GO
hokor
2010-07-27
打赏
举报
回复
[Quote=引用 4 楼 ldslove 的回复:]
哈希。。
[/Quote]
等待详解。。
zhang1you2huan
2010-07-27
打赏
举报
回复
O(∩_∩)O谢谢!可是产生了重复的卡号怎么办呢,虽然这样的概率是很小。
永生天地
2010-07-25
打赏
举报
回复
select convert(numeric(18,0),rand()*1000000000000000000)
jason成都
2010-07-25
打赏
举报
回复
可以一次产生1个,然后转为字符。18次字符组合。也可以一次产生18位的数字,但是太大了。
SQL
随机数读取,利用
rand
()
函数
declare @i int 定义一个变量 再利用rarnd()
函数
进行读取
产生随机数的
rand
()
函数
的使用方法.
产生随机数的
rand
()
函数
的使用方法.产生随机数的
rand
()
函数
的使用方法.
SQL
Server中的
RAND
函数
的介绍和区间随机数值
函数
的实现
工作中会遇到
SQL
Server模拟数据生成以及数值列值(如整型、日期和时间数据类型)随机填充等等任务,这些任务中都要使用到随机数。鉴于此,本文将对
SQL
Server中随机数的使用简单做个总结 。 T-
SQL
随机有关的三个
函数
RAND
([seed] 此
函数
生成从0到1之间随机 float 值(详细说明查看https://technet.microsoft.com/zh-cn/library/ms177610(v=
sql
.90).aspx)。 CHECKSUM ( * | expression [ ,…n ] ) 此
函数
生成按照表的某一行或一组表达式计算出来的int校验
sql
server中随机
函数
NewID()和
Rand
()
在
SQL
Server中,随机
函数
有
rand
(),NewID(),其中
rand
是在0到1内随机取数,NewID则是生成随机的uniqueidentifier唯一标识符。 SELECT * FROM Northwind..Orders ORDER BY NEWID() –随机排序 SELECT TOP 10 * FROM Northwind..Orders ORDER BY NEWID() –从Orders表中随机取出10条记录 示例 A.对变量使用 NEWID
函数
以下示例使用 NEWID() 对声明为 uniqueidentifier 数据类型的变量赋值。在测试 uniqueiden
SQL
server 随机数
函数
不过还是希望老鸟们多多指教了,现在切入正题: 随机
函数
:
rand
() 在查询分析器中执行:select
rand
(),可以看到结果会是类似于这样的随机小数:0.36361513486289558, 像这样的小数在实际应用中用得不多,一般要取随机数都会取随机整数。那就看下面的两种随机取整数的方法: 1、 A: select floor(
rand
()*N) —生成的数是这样的:12.0 B: select cast( floor(
rand
()*N) as int) —生成的数是这样的:12 2、 A:select ceiling(
rand
() * N) —生成的数是这样的:12.0 B:selec
疑难问题
22,298
社区成员
121,733
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章