Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Sélectionnez n lignes aléatoires dans la table SQL Server

select top 10 percent * from [yourtable] order by newid()

En réponse au commentaire "purement poubelle" concernant les grandes tables :vous pourriez le faire comme ça pour améliorer les performances.

select  * from [yourtable] where [yourPk] in 
(select top 10 percent [yourPk] from [yourtable] order by newid())

Le coût de ceci sera l'analyse clé des valeurs plus le coût de la jointure, ce qui, sur une grande table avec un petit pourcentage de sélection, devrait être raisonnable.