SQL server 数据库字段自动生成20位的随机数

 我来答
匿名用户
2010-12-23
展开全部
SELECT DBMS_RANDOM.RANDOM FROM DUAL;

产生一个任意大小的随机数

SELECT ABS(MOD(DBMS_RANDOM.RANDOM,100)) FROM DUAL;

产生一个100以内的随机数

SELECT TRUNC(100+900*dbms_random.value) FROM dual;

产生一个100~1000之间的随机数

SELECT dbms_random.value FROM dual;

产生一个0~1之间的随机数

SELECT dbms_random.value(10,20) FROM dual;

产生一个10~20之间的随机数

SELECT dbms_random.normal FROM dual;

NORMAL函数返回服从正态分布的一组数。此正态分布标准偏差为1,期望值为0。这个函数返回的数值中有68%是介于-1与+1之间,95%介于-2与+2之间,99%介于-3与+3之间。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenxfsoft
2010-12-23 · TA获得超过1380个赞
知道大有可为答主
回答量:2418
采纳率:0%
帮助的人:1817万
展开全部
20位要精确很难,所以用nvarchar来做了并把前面的0去了,用多个rand()结果连接起来的.
我只做个变量,这个结果你爱用哪里就用哪里吧.
declare @rnd nvarchar(50)
set @rnd =''
while LEN(@rnd)<20
begin
set @rnd =@rnd + REPLACE ( CONVERT(nvarchar, RAND ()),'0.','')
while LEFT(@rnd,1)='0'
set @rnd = RIGHT (@rnd,len(@rnd)-1)
end
set @rnd=LEFT(@rnd ,20)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bwliues
2011-01-04 · TA获得超过261个赞
知道答主
回答量:313
采纳率:0%
帮助的人:155万
展开全部
给你一个思路:
如果一个表中有省份字段和城市字段就比较好办:
首先用RS.RecordCount读取数据表的记录数,然后用随机函数生成一个随机数,这个随机数必须小于或等于数据表的总记录数,假如随机数的变量是:X,那么:
RS.Open "Select * From 数据表名 where ID=" & X & "", conn, 2 , 2
注意:数据表中ID字段(自动编号)必须是连续的!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
牧之卉0j1
2010-12-23 · TA获得超过1150个赞
知道大有可为答主
回答量:1689
采纳率:0%
帮助的人:1723万
展开全部
declare @a varchar(20)
declare @b varchar(20)
set @a=convert(varchar(20),convert(dec(30,0),rand()*1000000000000000))
set @b=convert(varchar(20),convert(dec(30,0),rand()*1000000000000000))
select left(@a,10)+left(@b,10)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
云计算懂管理的小司
2010-12-23 · TA获得超过1145个赞
知道小有建树答主
回答量:756
采纳率:100%
帮助的人:438万
展开全部
select user_no,dbo.mydata(1后面19个0,20个9) number from table_name;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式