miércoles, octubre 16, 2019

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,793FansMe gusta
340SeguidoresSeguir

Popular esta semana

Llamar funciones JavaScript desde el code-behind en ASP.NET

Explicamos como llamar métodos o funciones de JavaScript en nuestras aplicaciones en ASP.NET, eventos de botones o desde el code-behind.
sql server collation

Conflicto con Collation en consultas utilizando UNION ALL en SQL Server

Cómo solucionar el problema del Collation cuando utilizamos UNION o UNION ALL en consultas en SQL SERVER si estas lo tienen distinto.
ERROR PHP 7.2

Error: PHP Warning: count(): Parameter must be an array or an object that implements...

Como solucionar el error "PHP Warning: count() : Parameter must be an array or an object that implements Countable in..."

Últimos artículos

Ejemplos de Documentos Electrónicos 4.3

En este artículo vamos a brindar varios ejemplos de documentos electrónicos para la versión 4.3 de Factura Electrónica de Costa Rica.
Factura Electrónica Costa Rica

Encabezados del XML Factura Electrónica Costa Rica 4.3

Para generar el XML de la factura electrónica de Costa Rica se debe de seguir un formato específico para que estas sean...
C# - PDF417

Crear código PDF417 con iTextSharp y XZing en C# .NET

Para crear códigos PDF417 existen herramientas que podemos agregar a nuestra aplicaciones. En este ejemplo vamos explicar como utilizar iTextSharp y ZXing.

SQL Server: Error 3414, servicio no inicia

El error 3414 se produce generalmente cuando el motor de la base de datos SQL Server sufre algún evento imprevisto. Aquí lo solucionamos.