viernes, septiembre 29, 2023

Cómo retornar Random Rows utilizando NEWID y CHECKSUM

En un artículo anterior se había publicado Cómo generar correctamente un número random en SQL Server. En este ejemplo vamos a explicar cómo retornar datos random de un select, retornar filas aleatorias de datos.

Un ejemplo del funcionamiento de esto sería si necesitamos que siempre nos retorne un Row o Fila distinto en cada consulta, para un banner aleatorio, retornar artículos aleatorios, imágenes random.

Vamos a hacer el ejemplo usando la base de datos AdventureWorks2008. Se pueden ejecutar cualquiera de estos dos querys y retornarán datos distintos, datos random.

SELECT TOP 5 BusinessEntityID, FirstName, LastName
FROM Person.Person
ORDER BY CHECKSUM(NEWID())

SELECT TOP 5 BusinessEntityID, FirstName, LastName
FROM Person.Person
ORDER BY NEWID()

Como vemos en la primera se utiliza Checksum y en la segunda solamente NewID. Yo en lo personal prefiero la primera opción, en tablas muy grandes, prefiero ordenar los datos por un numero entero, pero en realidad es cuestión de gustos, las dos opciones funcionan.

El resultado de la consulta siempre va a ser distinta, cada vez que ejecutemos el query nos muestra rows distintos.

17375KrystalGao
15737BillyJiménez
6159LatashaSuarez
11459JennyZhu
20094DestinySimmons

Si lo volvemos a ejecutar muestra

12254ColleenChen
14253GarrettSanders
2484FrancisGutierrez
7495DominiqueMehta
12319ColleenKumar

Como podemos ver en cada ejecución ordena el resultado de manera distinta.

Roy Rojashttp://www.dotnetcr.com
Con más de 20 años de experiencia en programación, experto en lenguajes .NET, VB, C#, ASP.NET, Xamarin, XCode, DBA en SQL Server. Creador de dotnetcr.com, sitio web para programadores en español. royrojas.com | dotnetcr.com | GitHub

Redes Sociales

2,736FansMe gusta
326SeguidoresSeguir

Popular esta semana

SQL Server

Cómo saber la fecha que se modificó un procedimiento almacenado

Poder saber cuales objetos o procedimientos almacenados se modificaron recientemente es muy útil principalmente en bases de datos donde varios desarroladores tienen acceso
SQL Server MERGE

MERGE en SQL Server para Insert, Delete y Update con dos tablas

Ejemplo práctico usando MERGE para sincronizar dos tablas, Insert, Update y Delete en un solo query. Válido para SQL SERVER 2008 o superior.
SQL Server

Format en SQL Server (Transact-SQL)

La función Format aplica desde SQL Server 2012 en adelante. Devuelve un valor con el formato previamente indicado. Se puede utilizar para definir el formato de una fecha y hora o para retornar un numero como varchar en un formato específico.

Últimos artículos

SQL Server MERGE

MERGE in SQL Server for Insert, Delete and Update with two tables

Practical example using MERGE to synchronize two tables, Insert, Update and Delete in a single query. Valid for SQL SERVER 2008 or...

Como crear una API REST con ASP.NET Core 6.0

Crear una API REST con C# en ASP.NET es un proceso sencillo y rápido que permite exponer un conjunto de recursos a...
Machine Learning & Python

Introducción a Machine Learning en Python

Machine Learning es una rama de la inteligencia artificial que se enfoca en el desarrollo de sistemas que pueden aprender de...
SQL Server MERGE

MERGE en SQL Server, como utilizarlo de forma sencilla

El comando MERGE en SQL Server se utiliza para combinar datos de varias tablas en una sola tabla. Es útil para actualizar...