在我的数据库中我有产品表(ID int,...,Sponsored bool) 我的目标是能够从表中获得20个随机产品。赞助商品必须先退回。如果赞助产品少于20个,我可以获得随机非赞助产品,直到20个项目。
我可以选择一个吗?或者,如果不是一个选择尽可能高效。
答案 0 :(得分:1)
declare @a table (ID int, Sponsored bit)
insert @a values(1, 1)
insert @a values(2, 0)
insert @a values(3, 0)
select top 20 * from @a order by sponsored desc, newid()