sql >> Base de Datos >  >> RDS >> Sqlserver

Seleccione n filas aleatorias de la tabla de SQL Server

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

En respuesta al comentario de "pura basura" con respecto a las tablas grandes:podría hacerlo así para mejorar el rendimiento.

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

El costo de esto será el escaneo clave de valores más el costo de unión, que en una tabla grande con una pequeña selección de porcentaje debería ser razonable.