T-SQL DISTINCT, ORDER BY OFFSET…FETCH, TOP

Con estas clausulas podemos limitar los resultados así como ordenarlos.

Para las consultas se usa la base de datos AdventureWorks2014 de Microsoft

DISTINCT: 
Podremos mostrar los distintos elementos o combinaciones de estos.
Vamos a mostrar dos ejemplos el primero es los distintos colores de una tabla.
La segunda son las distintas combinaciones de subcategorías y colores.

Resultado:

Os añado este enlace al  blog de campus MVP, que explica como podríamos obtener una única línea por subcategoría y los colores separados por ,

Montain Bikes    Black, Silver

Lo explica muy bien y en algunos casos puede ser interesante.

ORDER BY  ( ASC | DESC ):

Permite ordenar los resultados de forma ascendente (ASC) es el orden por defecto o descendente (DESC)

Permite ordenar por los Alias, no se pueden ordenar columnas de tipo ntext, texto, imagen, geography, geometry, y XML.

ORDER BY   OFFSET .. FETCH:

Disponible a partir de SQL Server 2012

Permite limitar el conjunto de filas. Es muy práctico si queremos paginar los resultados.

OFFSET numRowsOmitir { ROW | ROWS } FETCH { FIRST | NEXT } numRowsaDevolver

Usar ROW o ROWS y usar FIRST o NEXT no afecta al resultado, es indiferente.

Resultados:

Tanto numRowsOmitir del OFFSET como numRowsaDevolverdel FETCH, pueden ser una variable, una expresión incluso una subconsulta que devuelve un escalar.

Puedes ver más ejemplos en Microsoft ORDER BY

TOP:

Limita la cantidad de filas que deseas obtener. Es muy útil si lo usamos con el ORDER BY.

Resultados:

 

 

 

Deja un comentario