0

私のDBには、製品テーブル(ID int、...、スポンサー付きブール)があります。私の目標は、テーブルから20個のランダムな製品を取得できるようにすることです。スポンサー製品を最初に返品する必要があります。スポンサー製品が20未満の場合は、20アイテムまでランダムな非スポンサー製品を入手する必要があります。

これを1つの選択で実行できますか?または、1つでない場合は、可能な限り効率的に選択します。

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 に答える