Seleccionar Registros aleatorios en SQL Server

SQL Server

Hace ya bastante tiempo atrás tenía la necesidad de obtener un número de registros aleatorios de una tabla en SQL Server. Específicamente lo necesitaba para un sistema de evaluación automática en la que se tenía un banco de preguntas en una tabla de la cuale al abrir el programa se tenía que mostrar 20 preguntas al azar. La solución que encontré fue usar la función NEWID() de SQL Server. Y ahora que he recibido una pregunta al respecto he decidido compartir la respuesta aquí.

NEWID() Crea un valor único del tipo uniqueidentifier, por lo tanto al generar un valor único por registro podemos ordenar y filtrar N registros por ese campo. Si la tabla se llama PREGUNTAS la siguiente sentencia nos devolvería 20 registros diferentes cada vez:

SELECT TOP 20 * FROM preguntas ORDER BY NEWID()

Espero que os sea de utilidad.

Si quieres más trucos de este tipo te invito a echarle un vistazo a este Nuevo libro de SQL Server 2014 en Español

Comprar en AmazonSQL Server 2014 | Amazon Kindle Comprar en Google PlaySQL Server 2014 | Google Play Books

2 comentarios

  1. La función correspondiente a mySql seria newid() … creo que es bastante rápida lo voy a probar, gracias !!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

© 2019 Espacio Digital

Tema por Anders NorénSubir ↑