获取数据库随机产生的内容
来源:互联网 发布:手机易拉宝制作软件 编辑:程序博客网 时间:2024/05/06 17:26
下午一直倒腾数据库的问题。其中有一个问题是随机获取一个表中的数据,而且在规定的时间段内不能更改数据。比如说,这个例子的引用背景是每个月随机产生4个用户,改用户是系统奖励的对象,而且在一个月内改4个用户的信息不变。本然再用一个表就可以轻松实现,但实际要求不能加表,所有只能在一个表内 以上是存储过程的全部代码,希望各位多多指点!
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: 章学敏
-- Create date: 2007-08-03
-- Description: 用于随机产生的奖励用户
-- =============================================
ALTER PROCEDURE [dbo].[Forum_GetAwardUser]
(@count int=1,@IsOne int=0,@tempflag int=1,@IsThirthy int=0)
AS
BEGIN
declare @max int
declare @rd int
select top 1 @max=UserID from UserBase order by [CreateTime] desc
if exists (select UserID from UserBase where IsAward=1)
set @tempflag=1
if(@IsThirthy=1)
begin
update UserBase set IsAward=2 where IsAward=1
end
if exists (select UserID from UserBase where IsAward=2)
set @tempflag=2
if((@tempflag=2)and(@IsOne=1))
begin
create table #td(ID int,[Name] nvarchar(20),NName nvarchar(20),Photo varchar(300))
update UserBase set IsAward=0
while @count<6
begin
select @rd = cast(ceiling(rand(checksum(newid()))*@max) as int)
if exists(select UserID from UserBase where UserID= @rd)
begin
set @count=@count+1
--select UserID,UserName,Nickname,PhotoUrl from UserBase where UserID=@rd
--insert into #td (ID,[Name],NName,Photo) values (select UserID,UserName,Nickname,PhotoUrl from UserBase where UserID=@rd)
insert into #td select UserID,UserName,Nickname,PhotoUrl from UserBase where UserID=@rd
update UserBase set IsAward=1 where UserID=@rd
end
if not exists(select UserID from UserBase where UserID= @rd)
set @count=@count
end
select distinct top 4 * from #td order by ID
drop table #td
end
else
select top 4 UserID as ID,UserName as [Name],Nickname as NName,PhotoUrl as Photo from UserBase where IsAward>0 order by UserID
END
set QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: 章学敏
-- Create date: 2007-08-03
-- Description: 用于随机产生的奖励用户
-- =============================================
ALTER PROCEDURE [dbo].[Forum_GetAwardUser]
(@count int=1,@IsOne int=0,@tempflag int=1,@IsThirthy int=0)
AS
BEGIN
declare @max int
declare @rd int
select top 1 @max=UserID from UserBase order by [CreateTime] desc
if exists (select UserID from UserBase where IsAward=1)
set @tempflag=1
if(@IsThirthy=1)
begin
update UserBase set IsAward=2 where IsAward=1
end
if exists (select UserID from UserBase where IsAward=2)
set @tempflag=2
if((@tempflag=2)and(@IsOne=1))
begin
create table #td(ID int,[Name] nvarchar(20),NName nvarchar(20),Photo varchar(300))
update UserBase set IsAward=0
while @count<6
begin
select @rd = cast(ceiling(rand(checksum(newid()))*@max) as int)
if exists(select UserID from UserBase where UserID= @rd)
begin
set @count=@count+1
--select UserID,UserName,Nickname,PhotoUrl from UserBase where UserID=@rd
--insert into #td (ID,[Name],NName,Photo) values (select UserID,UserName,Nickname,PhotoUrl from UserBase where UserID=@rd)
insert into #td select UserID,UserName,Nickname,PhotoUrl from UserBase where UserID=@rd
update UserBase set IsAward=1 where UserID=@rd
end
if not exists(select UserID from UserBase where UserID= @rd)
set @count=@count
end
select distinct top 4 * from #td order by ID
drop table #td
end
else
select top 4 UserID as ID,UserName as [Name],Nickname as NName,PhotoUrl as Photo from UserBase where IsAward>0 order by UserID
END
- 获取数据库随机产生的内容
- IOS随机获取想要的内容
- 产生随机的数组
- 产生随机的字符串
- 各个数据库获取随机列的语法
- 数据库获取随机记录
- 数据库获取随机记录
- 随机产生文件名的代码
- 随机产生不同的数
- 产生随机的验证码
- 产生随机数列的函数
- 产生随机数组的方法
- 随机排列数组的产生
- 随机数据产生的问题
- 随机产生不同的数
- 验证码的随机产生
- 随机色产生的宏
- android_获取另一个数据库的内容
- Lesson3: Please send me a card
- DeclarativeCatalogPar调用外部文件
- JavaEE5与Struts、Spring、Hibernate
- 特殊的空格字符
- Java 7.0 中值得期待的新功能预览
- 获取数据库随机产生的内容
- Symbain 进度条 源代码
- SOA平台之争:Java EE,还是.NET……
- 胜利大逃亡-该死的doc与access
- 我的大学项目开发的感言!
- NetBeans移植的解决方案
- 内存对齐
- Web2.0及相关概念解释
- Sizeof用法