El otro d├şa seme plante├│ el siguiente problema: ┬┐c├│mo puedo hacer para obtener con una consulta SQL un n├║mero 'N' de registros elegidos aleatoriamente dentro de una tabla con miles de registros?

En SQL Server hay, por lo menos, dos formas de hacerlo.

- Consulta 1: la complicada

SELECT TOP N * FROM Nombre_Tabla ORDER BY RAND( (@@IDLE % IDENTITYCOL ) + DATEPART( ms , CURRENT_TIMESTAMP )  + IDENTITYCOL)

De este modo se devuelven N identificadores de la tabla elegidos aleatoriamente. Lo que hace es coger un valor aleatorio en cada "vuelta" para un valor autonum├ęrico que act├║a como clave primaria de la tabla. Esto no es problema casi nunca ya que la mayor parte de las tablas suelen poseer un campo de este tipo. Sin embargo...

- Consulta 2: m├ís sencilla y gen├ęrica

SELECT TOP N * FROM Nombre_Tabla ORDER BY NewID()

Este m├ętodo como se ve no presupone nada y sirve incluso para tablas sin clave primaria y para consultas cruzadas con otras tablas.

Interesante ┬┐verdad?

💪🏻 ┬┐Este post te ha ayudado?, ┬┐has aprendido algo nuevo?
Pues NO te pido que me invites a un caf├ę... Te pido algo m├ís f├ícil y mucho mejor

Escrito por un humano, no por una IA