ORDER BY (Entity SQL)

Especifica el criterio de ordenación utilizado en los objetos devueltos en una instrucción SELECT.

[ ORDER BY 
   {
            order_by_expression [SKIP n] [LIMIT n]
      [ COLLATE collation_name ]
      [ ASC | DESC ]
   }
   [ ,…n ] 
]

Argumentos

  • order_by_expression
    Cualquier expresión de consulta válida que especifique una propiedad por la que se va a ordenar. Se pueden especificar varias expresiones de ordenación. La secuencia de las expresiones de ordenación de la cláusula ORDER BY define la organización del conjunto de resultados ordenado.
  • COLLATE {collation_name}
    Especifica que la operación ORDER BY se debe realizar de acuerdo con la intercalación especificada en collation_name. COLLATE solo es aplicable para las expresiones de cadena.
  • ASC
    Especifica que los valores de la propiedad indicada se deben ordenar de forma ascendente, del valor más bajo al más alto. Este es el valor predeterminado.
  • DESC
    Especifica que los valores de la propiedad indicada se deben ordenar de forma descendente, del valor más alto al más bajo.
  • LIMIT n
    Solo se seleccionarán los n primeros elementos.
  • SKIP n
    Omite los n primeros elementos.

Notas

La cláusula ORDER BY se aplica lógicamente al resultado de la cláusula SELECT. La cláusula ORDER BY puede hacer referencia a los elementos de la lista de selección utilizando sus alias. La cláusula ORDER BY también puede hacer referencia a otras variables que estén actualmente en el ámbito. Sin embargo, si la cláusula SELECT se ha especificado con un modificador DISTINCT, la cláusula ORDER BY solo puede hacer referencia a los alias de la cláusula SELECT.

SELECT c AS c1 FROM cs AS c ORDER BY c1.e1, c.e2

Cada expresión en la cláusula ORDER BY se debe evaluar como un tipo que se puede comparar a efectos de desigualdad ordenada (menor que o mayor que, etc.). Estos tipos son generalmente primitivos escalares, como números, cadenas y fechas. Los tipos de fila de tipos comparables también se pueden comparar según el orden.

Si el código recorre en iteración un conjunto ordenado, que no sea para una proyección de nivel superior, no se garantiza que los resultados mantengan su orden.

-- In the following sample, order is guaranteed to be preserved:
SELECT C1.FirstName, C1.LastName
        FROM AdventureWorks.Contact as C1
        ORDER BY C1.LastName
-- In the following query ordering of the nested query is ignored.  SELECT C2.FirstName, C2.LastName
    FROM (SELECT C1.FirstName, C1.LastName
        FROM AdventureWorks.Contact as C1
        ORDER BY C1.LastName) as C2  

Para tener una operación UNION, UNION ALL, EXCEPT o INTERSECT ordenada, utilice el modelo siguiente:

SELECT ...  FROM ( UNION/EXCEPT/INTERSECT operation )
ORDER BY ...  

Palabras clave restringidas

Las palabras clave siguientes debe ir entre comillas cuando se utilizan en una cláusula ORDER BY:

  • CROSS

  • FULL

  • KEY

  • LEFT

  • ORDER

  • OUTER

  • RIGHT

  • ROW

  • VALUE

Ordenar las consultas anidadas

En Entity Framework, una expresión anidada se puede colocar en cualquier parte de la consulta; el orden de una consulta anidada no se conserva.

-- The following query will order the results by the last name.  SELECT C1.FirstName, C1.LastName
        FROM AdventureWorks.Contact as C1
        ORDER BY C1.LastName  
-- In the following query, ordering of the nested query is ignored.  SELECT C2.FirstName, C2.LastName
    FROM (SELECT C1.FirstName, C1.LastName
        FROM AdventureWorks.Contact as C1
        ORDER BY C1.LastName) as C2  

Ejemplo

La consulta de Entity SQL siguiente usa el operador ORDER BY para especificar el criterio de ordenación utilizado en los objetos devueltos en una instrucción SELECT. La consulta se basa en el modelo AdventureWorks Sales. Para compilar y ejecutar esta consulta, siga estos pasos:

  1. Siga el procedimiento de Cómo: Ejecutar una consulta que devuelve resultados StructuralType (EntityClient).

  2. Pase la consulta siguiente como argumento al método ExecuteStructuralTypeQuery:

SELECT VALUE p FROM AdventureWorksEntities.Products 
    AS p order by p.ListPrice

Vea también

Referencia

SKIP (Entity SQL)
LIMIT (Entity SQL)
TOP (Entity SQL)

Conceptos

Expresiones de consulta (Entity SQL)
Referencia de Entity SQL