SQL server 数据库字段自动生成20位的随机数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL server 数据库字段自动生成20位的随机数相关的知识,希望对你有一定的参考价值。
参考技术A 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之间。
参考技术B 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) 参考技术C 给你一个思路:
如果一个表中有省份字段和城市字段就比较好办:
首先用RS.RecordCount读取数据表的记录数,然后用随机函数生成一个随机数,这个随机数必须小于或等于数据表的总记录数,假如随机数的变量是:X,那么:
RS.Open "Select * From 数据表名 where ID=" & X & "", conn, 2 , 2
注意:数据表中ID字段(自动编号)必须是连续的!! 参考技术D 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) 第5个回答 2010-12-23 select user_no,dbo.mydata(1后面19个0,20个9) number from table_name;
SQL Server 在查询结果增加自定义的三个字段?如何搞?
如图所示:
我现在需要在图中的SQL的查询结果中,增加图中三个自定义的列:Precipitation12Hours、Precipitation24Hours、Precipitation72Hours;
这三个列分别表示:
Precipitation12Hours:12个小时Precipitation之和。该站点(StationId),从此刻(ObservTimes)到以后的12小时之间Precipitation值之和。例如,第一个,2015092217时,2015/09/22 17:00:00到2015092304时,2015/09/23 04:00:00的Precipitation之和为:0;
第二个,2015092218到2015092305的Precipitation之和为0.3;以此类推。
Precipitation24Hours:计算方式与Precipitation12Hours相似,这个是计算24小时Precipitation之和。
Precipitation72Hours:计算方式与Precipitation12Hours相似,这个是计算72小时Precipitation之和。
其中,StationId表示站点ID,ObservTimes表示时间。
请问上述需求如何解决?
在后面加上如下语句:
( select sum(sh.Precipitation) from StationAwsh1 f
where f.StationId = sh.StationId
and f.ObservTimes Between sh.ObservTimes and
replace(replace(convert(varchar(13),dateadd(hh,12,cast(left(sh.ObservTimes,8) + ' ' + right(sh.ObservTimes,2) + ':00' as datetime)),120),'-',''),' ','')
) as Pre12H,
( select sum(sh.Precipitation) from StationAwsh1 f
where f.StationId = sh.StationId
and f.ObservTimes Between sh.ObservTimes and
replace(replace(convert(varchar(13),dateadd(hh,24,cast(left(sh.ObservTimes,8) + ' ' + right(sh.ObservTimes,2) + ':00' as datetime)),120),'-',''),' ','')
) as Pre24H,
( select sum(sh.Precipitation) from StationAwsh1 f
where f.StationId = sh.StationId
and f.ObservTimes Between sh.ObservTimes and
replace(replace(convert(varchar(13),dateadd(hh,72,cast(left(sh.ObservTimes,8) + ' ' + right(sh.ObservTimes,2) + ':00' as datetime)),120),'-',''),' ','')
) as Pre72H本回答被提问者和网友采纳
以上是关于SQL server 数据库字段自动生成20位的随机数的主要内容,如果未能解决你的问题,请参考以下文章
如何在 sql server 中定位自由文本字段中的 16 位数字字符串?
SQL Server 在查询结果增加自定义的三个字段?如何搞?
SQL server数据库统计指定字段符合数组中指定个数的SQL语句写法