Compartir a través de


Ordenar filas

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 Intercalación (Cuadro de diálogo).

Los resultados de la consulta se pueden ordenar de formas distintas:

  • 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, simplemente ordene 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 vayan primero los valores más altos. Es decir, puede indicar que las filas de resultados deben organizarse 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 los derechos de autor más elevados 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 los derechos de autor 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, consulte la documentación de SQL Server.

  • Puede ordenar filas agrupadas   Por ejemplo, puede crear un conjunto de resultados en el cual 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 española 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
    

Para obtener más información, vea Cómo: Utilizar el Diseñador de consultas y vistas con datos internacionales. Para obtener más información sobre el orden de resultados, vea Ordenar y agrupar los resultados de la consulta.

Vea también

Otros recursos

Ordenar y agrupar los resultados de la consulta

Diseñar consultas y vistas