Compartir a través de


Ordenar filas (Visual Database Tools)

se aplica a:sql Server

Puede ordenar las filas en un resultado de consulta. Es decir, puede asignar un nombre a una columna o conjunto determinado de columnas cuyos valores determinan el orden de las filas del conjunto de resultados.

Nota

El criterio de ordenación se determina en parte por la secuencia de intercalación de la columna. Puede cambiar la secuencia de intercalación en el cuadro de diálogo Intercalación.

Hay varias maneras de ordenar los resultados de la consulta:

  • Puede organizar filas en orden ascendente o descendente.

    De forma predeterminada, SQL usa columnas order-by para organizar las filas en orden ascendente. Por ejemplo, para organizar los títulos del libro por un precio ascendente, simplemente ordene las filas por la columna price. El código SQL resultante podría tener este aspecto:

    SELECT *
    FROM titles
    ORDER BY price;
    

    Por otro lado, si desea organizar los títulos comenzando por los libros más caros, puede especificar explícitamente un orden de precio descendente. Es decir, se indica que las filas de resultados deben organizarse por valores descendentes de la columna precio. El código SQL resultante podría tener este 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, ordenar primero por estado y luego por ciudad. El código SQL resultante podría tener este aspecto:

    SELECT *
    FROM authors
    ORDER BY state, city;
    
  • Puede ordenar por columnas que no aparecen en el conjunto de resultados.

    Por ejemplo, puede crear un conjunto de resultados con los títulos más caros primero, aunque los precios no aparezcan. El código SQL resultante podría tener este 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 contiene un título de libro, con los libros que pagan la regalía más alta por copia que aparece primero. El código SQL resultante podría tener este aspecto:

    SELECT title,
           price * royalty / 100 AS royalty_per_unit
    FROM titles
    ORDER BY royalty_per_unit DESC;
    

    (La fórmula para calcular la regalía que cada libro gana por copia se enfatiza).

    Para calcular una columna derivada, puede usar la sintaxis SQL, como en el ejemplo anterior, o bien puede usar 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 que cada fila describe una ciudad, además del número de autores de esa ciudad, con las ciudades que contienen muchos autores que aparecen primero. El código SQL resultante podría tener este aspecto:

    SELECT city,
           state,
           COUNT(*)
    FROM authors
    GROUP BY city, state
    ORDER BY COUNT(*) DESC, state;
    

    La consulta usa state como columna de ordenación secundaria. Por lo tanto, si dos estados tienen el mismo número de autores, esos estados aparecen en orden alfabético.

  • Puede ordenar mediante datos internacionales.

    Es decir, puede ordenar una columna usando convenciones de intercalación que difieren de las convenciones predeterminadas de esa columna. Por ejemplo, puede escribir una consulta que recupere todos los títulos del libro de Jaime Patiño. Para mostrar los títulos en orden alfabético, use una secuencia de intercalación en español para la columna de título. El código SQL resultante podría tener este 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;