数据表位A_ziliao 有一标志id
首先建立一个过渡表(id,地名)
用游标查询数据表A_ziliao记录id
更改列 sheng 为随机值
declare @fid int,@nn int
declare cursor3 cursor for --定义游标cursor3
select id from A_ziliao --使用游标的对象(跟据需要填入select文)
open cursor3 --打开游标
fetch next from cursor3 into @fid
while @@fetch_status=0 --判断是否成功获取数据
begin
set @nn =4*rand +1'随机id
update A_ziliao set sheng=(select 地名 from 过渡表 where id= @nn )where id=@fid
fetch next from cursor3 into @fid --将游标向下移1行
end
close cursor3 --关闭游标
deallocate cursor3
‘贰’ 用sql 产生随机数字
不同的数据库,写法是不一样啊!对于Access数据库,可以用这个方法实现:
SELECT
Int(Rnd()*100)+1
AS
r1,Int(Rnd()*100)+1
AS
r2,Int(Rnd()*100)+1
AS
r3
如此循环。其他数据库的写法类似。
但是如果纯粹用sql生成50*200个随机数,很麻烦的。如果要简单些,需要额外写SQL
Server的存储过程或者Access的宏函数。
可以用Excel表来实现,见附件。
‘叁’ 使用SQL语句取随机数的方法
SQL随机查询语句,[数据库使用技巧]SQL语句生成随机数,如何随机显示sql查询语句查询的数据记录集中的20条,随机取出若干条记录的SQL语句,使用SQL语句取随机数的方法
方法如下:
SQL
Server:
Select
TOP
N
*
From
TABLE
order
By
NewID()
Access:
dim
r
randomize
r
=
rnd
sql
=
"select
top
10
*
from
table
order
by
rnd("
&
r
&
"-id)"
rnd("
&
r
&
"-id)
其中的id是自动编号字段,可以利用其他任何数值来完成,比如用姓名字段(UserName)
select
top
10
*
from
table
order
by
rnd("
&
r
&
"-Len(UserName))
MySql:
Select
*
From
TABLE
order
By
Rand()
Limit
10
orACLE:
select
*from
(select
*from
t
order
by
dbms_random.value)
where
rownum<10
‘肆’ 如何在sqlserver中用sql语句插入随机的大量的数据啊~求救。。
随机的没弄,给你写个简单的例子
建表
createtabletest(idint,namevarchar(10))
执行过程,我这个就插了100条
declare
@iint
set@i=1
while@i<=100
begin
insertintotestvalues(@i,'张三')
set@i=@i+1
end
数据截图
楼上那哥们想法不错,不过用的是oracle里的写法,但好像还有点问题,变量都没定义呢
‘伍’ 请问让sql随机生成500个1-100的数字怎么写
你可以在sql查询分析器的帮助里面看到一些这方面的例子,查询 rand 就可以了,我把里面的例子改一下来达到你的要求吧
DECLARE @counter smallint
SET @counter = 1
WHILE @counter < 500
BEGIN
SELECT (RAND(@counter)*99+1) Random_Number
SET NOCOUNT ON
SET @counter = @counter + 1
SET NOCOUNT OFF
END
GO
这样就能返回500个1到100的随机数了
rand()是返回一个0-1的随机数(是float型的),乘以99就能得到0-99的随机数,再加1就变成1-100之间的随机数了
‘陆’ 如何用SQL为每一行均产生一个随机数
select
dbms_random.random
from
al;
返回的是binary_integer
类型值,产生任意大小的随机数(正或者负)binary_integer
,范围为2的31次方到-2的31次方。
具体还有很多关于随机数字或者字母的使用,都是关于dbms_random系统包的用法,
例如dbms_random.value
;
dbms_random.normal
;
dbms_random.string
;
可以上网查询下。