¿Cuál es la mejor manera de ordenar los resultados de una consulta SQL en un orden aleatorio dentro de un procedimiento almacenado?SQL Server Random Sort
Respuesta
Este es un duplicado de SO# 19412. Aquí está la respuesta que di allí:
select top 1 * from mytable order by newid()
En SQL Server 2005 y hasta, puede utilizar TABLESAMPLE para obtener una muestra aleatoria que es repetible:
SELECT FirstName, LastName FROM Contact TABLESAMPLE (1 ROWS) ;
Aunque esta no es la mejor respuesta según la otra pregunta relacionada con: http://stackoverflow.com/questions/19412/how-to-request-a-random-row-in-sql –
Esta pregunta no es un duplicado exacto de SO # 19412 que solicita una fila aleatoria de una consulta, aunque esta esté marcada como la respuesta, ya que esto solo da 1 fila, no los resultados de la consulta ordenados aleatoriamente. –
¡La punta de TABLESAMPLE es dorada! – Kong
select foo from Bar order by newid()
No se puede simplemente ORDER BY RAND(), como usted sabe, porque solo generará un valor. Entonces usa una clave para un valor inicial.
SELECT RAND(object_id), object_id, name FROM sys.objects ORDER BY 1
O utilice la siguiente consulta, que devuelve una mejor resultado de muestra aleatoria:
SELECT * FROM a_table WHERE 0.01 >= CAST(CHECKSUM(NEWID(), a_column) & 0x7fffffff AS float)/CAST (0x7fffffff AS int)
0.01 significa ~ 1 por ciento de filas totales.
Presupuesto de SQL Server 2008 Libros en pantalla:
Si realmente quieres una muestra aleatoria de filas individuales, modificar la consulta para filtro cabo filas al azar, en lugar de usar TABLESAMPLE.
Esto funciona más lento que TABLESAMPLE y más rápido que ORDER BY NEWID() en una gran mesa. – endo64
Como estaba buscando un muestreo al azar de los resultados de una consulta, esta solución en particular me dio lo que estaba buscando, aunque la respuesta de harpo ordenaría los resultados al azar. –
- 1. PHP/SQL: ORDER BY or sort ($ array)?
- 2. Mysql 1 Random Fila
- 3. SQL Server 2008 a SQL Server 2005
- 4. SQL en SQL Server
- 5. SQL Server
- 6. Sort lexicographically?
- 7. ¿Cómo implementar Random (a, b) con solo Random (0,1)?
- 8. jquery random color hover
- 9. /dev/random Extremadamente lento?
- 10. Haskell Random Generation
- 11. Python Random Slice Idiom
- 12. Instancias independientes de 'random'
- 13. Prolog: Random Etiquetado
- 14. Distribución uniforme con Random
- 15. Random body background-image
- 16. soapui random delay
- 17. Restaurar SQL Server 2008 DB * a * SQL Server 2005
- 18. degradación de SQL Server 2008 a SQL Server 2005
- 19. ¿Hay un SQL Server Profiler para SQL Server Express?
- 20. Cambiando de usar SQL Server Express a SQL Server Compact
- 21. Drop table en Sql Server por Sql Server Management Studio
- 22. SQL Server 2008 a SQL Server Compact Edition?
- 23. SQL Server 2008 compatibilidad con SQL Server 2005
- 24. SQL Server Linked Server Ejemplo de consulta
- 25. Linking Server en SQL Server 2008 R2
- 26. SQL Server utf8 howto?
- 27. SQL Server create date
- 28. Scripting SQL Server permisos
- 29. Recursiva SUM Sql Server
- 30. SELECT COUNT (*) SQL SERVER
posible duplicado de [Cómo solicitar una fila al azar en SQL?] (Http://stackoverflow.com/questions/19412/how-to-request-a-random-row-in-sql) – exhuma