0

在我的数据库中,我有产品表(ID int, ... , Sponsored bool) 我的目标是能够从表中获得 20 个随机产品。必须先退回赞助产品。如果赞助产品少于 20 件,我会随机获得非赞助产品,直到 20 件。

我可以一次选择吗?或者,如果没有一个选择尽可能高效。

4

1 回答 1

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()
于 2012-06-21T11:32:37.940 回答