| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1744 人关注过本帖
标题:[求助]求一下随机取纪录的写法
只看楼主 加入收藏
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
收藏
得分:0 

应楼主要求给出代码:

---数据准备
create table b
(
SName varchar(10),
SText varchar(10),
SNum int
)

insert into b
select 'a','aa',1
union
select 'b','bb',2
union
select 'c','cc',3
union
select 'd','dd',4
union
select 'e','ee',5
union
select 'f','ff',6
union
select 'g','gg',7
union
select 'h','hh',8
union
select 'i','ii',9

---存储过程的代码

Create Proc pr_GetRandomRecords

as

Declare @Max money,@Min money,@Random float

select @Max = max(Snum),@Min = min(Snum) from b

select *,SFactor = (Snum - @min)/ (@max - @min) into #a from b
set @Random = rand()

Select * into #b from #a where Sfactor >= @random

Select top 1 *,[id] = newid() from #b order by newid()

Go


----运行存储过程得到的结果

exec pr_GetRandomRecords

结果:

(9 row(s) affected)


(2 row(s) affected)

SName SText SNum SFactor id
---------- ---------- ----------- --------------------- ------------------------------------
h hh 8 .8750 BC400AA3-C35C-436D-A427-4104E9BA2A92

(1 row(s) affected)



2007-04-16 16:24
suntao
Rank: 1
等 级:新手上路
帖 子:128
专家分:0
注 册:2006-7-23
收藏
得分:0 

斑竹,偶像!


2007-04-16 17:12
xiyou419
Rank: 1
等 级:新手上路
威 望:2
帖 子:104
专家分:0
注 册:2007-3-18
收藏
得分:0 
Kendy123456,真是太佩服你了~~~~~~~~~~~~~~~

道德往往可以弥补智慧的缺陷;但智慧永远不能填补道德的空白.
2007-04-17 12:29
无聊的爱
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2006-12-6
收藏
得分:0 
I 服了 you!

2007-04-24 18:00
快速回复:[求助]求一下随机取纪录的写法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022350 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved