Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Wybierz n losowych wierszy z tabeli SQL Server

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

W odpowiedzi na komentarz „czysty śmieci” dotyczący dużych stołów:możesz to zrobić w ten sposób, aby poprawić wydajność.

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

Kosztem tego będzie kluczowe skanowanie wartości plus koszt przyłączenia, co w przypadku dużej tabeli z małym zaznaczeniem procentowym powinno być rozsądne.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. EF5:Nie można dołączyć pliku „{0}” jako bazy danych „{1}”

  2. Uzyskaj listę kont pocztowych bazy danych w SQL Server (T-SQL)

  3. Jak zmniejszyć rozmiar pliku danych w SQL Server (T-SQL)

  4. Jak mapować wiele partycji do jednej grupy plików w programie SQL Server (T-SQL)

  5. TABLESAMPLE zwraca nieprawidłową liczbę wierszy?