Ordenar filas (Visual Database Tools)
Puede ordenar las filas de un resultado de consulta. Es decir, puede indicar una columna o un conjunto de columnas determinado cuyos valores determinen el orden de las filas en el conjunto de resultados.
Nota
La secuencia de intercalación de la columna determina en parte el criterio de ordenación. La secuencia de intercalación se puede modificar en el cuadro de diálogo Intercalación.
Los resultados de la consulta se pueden ordenar de varias maneras:
Puede organizar filas en orden ascendente o descendente De forma predeterminada, SQL utiliza el orden por columnas para organizar las filas en orden ascendente. Por ejemplo, para organizar los títulos de libros por precio ascendente, sólo tiene que ordenar las filas por la columna price. El código SQL resultante puede presentar el siguiente aspecto:
SELECT * FROM titles ORDER BY price
Por otro lado, si desea organizar los títulos con los libros más caros primero, puede especificar explícitamente un orden en el que se indiquen primero los valores más altos. Es decir, puede indicar que las filas del resultado se ordenen por valores descendentes de la columna price. El código SQL resultante puede presentar el siguiente aspecto:
SELECT * FROM titles ORDER BY price DESC
Puede ordenar por varias columnas Por ejemplo, puede crear un conjunto de resultados con una fila para cada autor, que se ordene primero por estado y, a continuación, por ciudad. El código SQL resultante puede presentar el siguiente aspecto:
SELECT * FROM authors ORDER BY state, city
Puede ordenar por columnas que no aparezcan en el conjunto de resultados Por ejemplo, puede crear un conjunto de resultados con los títulos más caros primero, aunque no aparezcan los precios. El código SQL resultante puede presentar el siguiente aspecto:
SELECT title_id, title FROM titles ORDER BY price DESC
Puede ordenar por columnas derivadas Por ejemplo, puede crear un conjunto de resultados en el que cada fila contenga un título de libro y en el que aparezcan primero los libros que pagan las regalías (royalties) más elevadas por copia. El código SQL resultante puede presentar el siguiente aspecto:
SELECT title, price * royalty / 100 as royalty_per_unit FROM titles ORDER BY royalty_per_unit DESC
(La fórmula para calcular las regalías que cada libro genera por copia está resaltada).
Para calcular una columna derivada, puede utilizar la sintaxis SQL, como en el ejemplo anterior, o puede utilizar una función definida por el usuario que devuelva un valor escalar. Para obtener más información sobre las funciones definidas por el usuario, vea la documentación de SQL Server.
Puede ordenar filas agrupadas Por ejemplo, puede crear un conjunto de resultados en el que cada fila describa una ciudad, además del número de autores de esa ciudad, y en el que aparezcan primero las ciudades que contienen muchos autores. El código SQL resultante puede presentar el siguiente aspecto:
SELECT city, state, COUNT(*) FROM authors GROUP BY city, state ORDER BY COUNT(*) DESC, state
Tenga en cuenta que la consulta utiliza state como columna de orden secundaria. De este modo, si dos estados tienen el mismo número de autores, esos estados aparecerán en orden alfabético.
Puede ordenar mediante el uso de datos internacionales Es decir, puede ordenar una columna mediante el uso de convenciones de intercalación diferentes de las convenciones predeterminadas para esa columna. Por ejemplo, puede escribir una consulta que recupere todo los libros de Jaime Patiño. Para que los títulos aparezcan ordenados alfabéticamente, utilice una secuencia de intercalación de español en la columna de los títulos. El código SQL resultante puede presentar el siguiente aspecto:
SELECT title FROM authors INNER JOIN titleauthor ON authors.au_id = titleauthor.au_id INNER JOIN titles ON titleauthor.title_id = titles.title_id WHERE au_fname = 'Jaime' AND au_lname = 'Patiño' ORDER BY title COLLATE SQL_Spanish_Pref_CP1_CI_AS