Cách tốt nhất để sắp xếp kết quả của truy vấn sql thành một thứ tự ngẫu nhiên trong một thủ tục được lưu trữ là gì?Phân loại ngẫu nhiên SQL Server
Trả lời
Đây là bản sao của SO# 19412. Dưới đây là câu trả lời tôi đã có:
select top 1 * from mytable order by newid()
Trong SQL Server 2005 trở lên, bạn có thể sử dụng TABLESAMPLE để có được một mẫu ngẫu nhiên đó là lặp lại:
SELECT FirstName, LastName FROM Contact TABLESAMPLE (1 ROWS) ;
Mặc dù đây không phải là câu trả lời hay nhất theo câu hỏi khác liên quan đến: http://stackoverflow.com/questions/19412/how-to-request-a-random-row-in-sql –
Câu hỏi này không phải là một bản sao chính xác của SO # 19412 yêu cầu một hàng ngẫu nhiên từ một truy vấn, mặc dù điều này được đánh dấu là câu trả lời, vì điều này chỉ cho phép 1 hàng không phải là kết quả của truy vấn được sắp xếp ngẫu nhiên. –
Mẹo TABLESAMPLE là vàng! – Kong
select foo from Bar order by newid()
Bạn không thể chỉ ORDER THEO RAND(), như bạn biết, bởi vì nó sẽ chỉ tạo ra một giá trị. Vì vậy, hãy sử dụng khóa cho giá trị hạt giống.
SELECT RAND(object_id), object_id, name FROM sys.objects ORDER BY 1
Hoặc sử dụng các truy vấn sau đây, mà trả về một tốt hơn kết quả mẫu ngẫu nhiên:
SELECT * FROM a_table WHERE 0.01 >= CAST(CHECKSUM(NEWID(), a_column) & 0x7fffffff AS float)/CAST (0x7fffffff AS int)
0,01 có nghĩa là ~ 1% tổng số hàng.
Trích từ SQL 2008 Books Online:
Nếu bạn thực sự muốn có một mẫu ngẫu nhiên của hàng cá nhân, sửa đổi truy vấn của bạn để lọc ra các hàng một cách ngẫu nhiên, thay vì sử dụng TABLESAMPLE.
Điều này chạy chậm hơn TABLESAMPLE và nhanh hơn ORDER BY NEWID() trên một bảng lớn. – endo64
Vì tôi đang tìm kiếm một mẫu ngẫu nhiên từ các kết quả của một truy vấn, giải pháp cụ thể này đã cho tôi những gì tôi đang tìm kiếm mặc dù câu trả lời của harpo sẽ ra lệnh cho các kết quả ngẫu nhiên. –
- 1. Trình tạo số ngẫu nhiên phân phối ngẫu nhiên
- 2. SQL tổng hợp ngẫu nhiên
- 3. Phân tích số ngẫu nhiên
- 4. Sql Compact ngẫu nhiên tạo AccessViolationException
- 5. Sắp xếp tự nhiên cho SQL Server?
- 6. Hàng ngẫu nhiên từ LINQ đến Sql
- 7. Phân phối số ngẫu nhiên thế hệ
- 8. phân phối ngẫu nhiên Gaussian trong PostgreSQL
- 9. Tạo một tệp nhị phân ngẫu nhiên
- 10. Tại sao không ngẫu nhiên() ngẫu nhiên?
- 11. số ngẫu nhiên không quá ngẫu nhiên
- 12. Tổng hợp ngẫu nhiên?
- 13. Loại bỏ trùng lặp bằng phân vùng bởi SQL Server
- 14. Loại dữ liệu thập lục phân của SQL Server
- 15. Hiệu suất loại dữ liệu phân cấp SQL Server 2008?
- 16. Phân loại Javascript để khớp với SQL Server sắp xếp
- 17. Phân loại cây với cột khác trong SQL Server 2008
- 18. Cuộc gặp gỡ ngẫu nhiên không quá ngẫu nhiên
- 19. Máy chủ SQL: điền vào một cột có số thập phân ngẫu nhiên
- 20. Phân ngẫu nhiên các phần tử trong một mảng?
- 21. số C# ngẫu nhiên không là "ngẫu nhiên"
- 22. Số ngẫu nhiên hoặc số dương Javascript ngẫu nhiên
- 23. Python: tạo phân bố liên tục (loại Maxwell-Boltzmann) để tạo các giá trị ngẫu nhiên
- 24. SQL cư bảng với dữ liệu ngẫu nhiên
- 25. Lựa chọn trọng số ngẫu nhiên trong T-SQL
- 26. Chọn Hàng Ngẫu nhiên từ SQL Sử dụng PHP
- 27. Cách tạo dữ liệu ngẫu nhiên trong máy chủ SQL
- 28. Deserialize các loại ngẫu nhiên/không xác định với XmlSerializer
- 29. Hiểu phân bố Poisson của trình tạo số ngẫu nhiên
- 30. phát sinh số ngẫu nhiên được phân phối đồng đều
bản sao có thể có của [Cách yêu cầu hàng ngẫu nhiên trong SQL?] (Http://stackoverflow.com/questions/19412/how-to-request-a-random-row-in-sql) – exhuma