--随机选择一个小于等于500的组合
"COLOR: #008080">-- "COLOR: #008080">随机选择一个小于等于500的组合 "COLOR: #008080">
--随机选择一个小于等于500的组合
declare @tb table(id int,num int)
insert into @tb select 1,1000
insert into @tb select 2,100
insert into @tb select 3,500
insert into @tb select 4,200
insert into @tb select 5,200
insert into @tb select 6,50
insert into @tb select 7,150
insert into @tb select 8,80
insert into @tb select 9,70
declare @idtb table(id int)
declare @num int,@id int,@sum int
set @sum=0
while @sum<>500
begin
select top 1 @id=id,@num=num from @tb where num<=500 order by newid()
if @num=500
insert into @idtb select @id
else
if not exists(select 1 from @idtb where id=@id)
insert into @idtb select @id
select @sum=sum(num) from @tb where id in(select id from @idtb)
if(@sum>500)
begin
delete @idtb
end
end
select * from @tb where id in(
select id from @idtb) 本文作者:佚名 来源:http://topic.csdn.net/u/20090120/10/9288e39c-7fbc-
CIO之家 www.ciozj.com 微信公众号:imciow
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读