2012-06-21 1 views
0

Dans ma base de données j'ai la table des produits (ID int, ..., Sponsored bool) Mon but est de pouvoir obtenir 20 produits aléatoires de la table. Les produits sponsorisés doivent être retournés en premier. S'il y a moins de 20 produits sponsorisés, je pourrais obtenir des produits non commandés au hasard jusqu'à 20 articles.TSQL: sélectionnez les produits présentés dans une seule requête

Puis-je faire cela en un seul choix? Ou sinon, sélectionnez un aussi efficace que possible.

Répondre

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() 
Questions connexes