可以用存储过程啊
就可以实现啊
语句也行啊
MYSQL语法
SELECT FLOOR(7 + (RAND() 6));你先建立一个表
然后在插入数据
UPDATE `news_conta_all_20141104` SET memo4=CEIL(RAND()199);
oracle 里面能实现,sqlserver里面不知道有没有分析函数
给你个参考
select
from
(
select id,name,tid,rank()over(partition by tid order by sys_guid())rnd
from table
) t
where rnd <= 5
其中
rank()over(partition by tid order by sys_guid())
的作用是求按tid分组然后按照sys_guid(相当于sql中的newid)排序后这一行所处的名次
试试这个:
先随机排序,再取条数下面随机取3条
rad()为随机函数
proid一般为自动增长的key值,你改成你表中相应的字段即可
select top 3 t from userinfo t order by rnd(proid)
这个应该可以满足你的要求
写个循环语句,每次随机一个信息存入一个随机数据表内,在设一个计数,计数控制在200以内,每随机一条数据并将随机的数据与随机数据表里之前的数据比对无重复的即+1,计数如果在200以内继续循环。。。、
不好意思 语句我早就忘了,但我这样想的希望可以解决你的问题
select a,count(a) 次数
from 表
group by a
order by count(a) desc
--如果你这是sql2005就用
row_num() over() 来处理名次。但我这没环境也没试
--下面这是另种方法
declare @t table(a int,b int,c int identity(1,1))
insert into @t(a,b)
select a,count(a) 次数
from 表
group by a
order by count(a) desc
select from @t
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)