22,209
社区成员
发帖
与我相关
我的任务
分享
----楼主:这样试试
declare @num int
select @num=convert(int,rand()*1000)
print (case when @num<20 then 20 else @num end)
select top 20 id, price, name from (
select top(case when @num<20 then 20 else @num end) id, price, name from plist order by newid()) t order by price desc;
select top 20 id, price, name from
( select top 1000 id, price, name from plist order by newid() ) t order by t.price desc
--百分比
declare @percent varchar(20)
--价格
declare @price int
if @price > 2000 --价格大于2000的时候取个百分比 80%左右
select @percent = convert(varchar,80.0- ascii(right(newid(),1))%6*0.1-ascii(right(newid(),1))%10*0.01)
else --其他价格的时候取多少百分比 20%左右
select @percent = convert(varchar,20.0- ascii(right(newid(),1))%3-ascii(right(newid(),1))%6*0.1-ascii(right(newid(),1))%10*0.01)
。。。。。。。。。。
select top 20 from
( select top 1000 id, price, name from plist order by newid() ) t order by t.price;
select top 20 * from tb order by newid(), price desc
select top 20 * from plist order by price desc
不过随机取20条数据还是可以
select top 20 * from tb order by price newid()