Order By (Cláusula, Visual Basic)Order By Clause (Visual Basic)

Especifica el criterio de ordenación para el resultado de una consulta.Specifies the sort order for a query result.

SintaxisSyntax

Order By orderExp1 [ Ascending | Descending ] [, orderExp2 [...] ]  

ElementosParts

orderExp1
Obligatorio.Required. Uno o más campos del resultado de la consulta actual que identifican cómo ordenar los valores devueltos.One or more fields from the current query result that identify how to order the returned values. Los nombres de campo deben estar separados por comas (,).The field names must be separated by commas (,). Puede identificar cada campo como ordenado en orden ascendente o descendente mediante el uso de las palabras clave Ascending o Descending.You can identify each field as sorted in ascending or descending order by using the Ascending or Descending keywords. Si no se especifica ninguna palabra clave Ascending o Descending, el criterio de ordenación predeterminado es ascendente.If no Ascending or Descending keyword is specified, the default sort order is ascending. Los campos de criterio de ordenación tienen prioridad de izquierda a derecha.The sort order fields are given precedence from left to right.

ComentariosRemarks

Puede utilizar la cláusula Order By para ordenar los resultados de una consulta.You can use the Order By clause to sort the results of a query. La cláusula Order By solo puede ordenar un resultado en función de la variable de rango del ámbito actual.The Order By clause can only sort a result based on the range variable for the current scope. Por ejemplo, la cláusula Select introduce un nuevo ámbito en una expresión de consulta con nuevas variables de iteración para ese ámbito.For example, the Select clause introduces a new scope in a query expression with new iteration variables for that scope. Las variables de rango definidas antes de una cláusula de Select en una consulta no están disponibles después de la cláusula Select.Range variables defined before a Select clause in a query are not available after the Select clause. Por lo tanto, si desea ordenar los resultados por un campo que no está disponible en la cláusula Select, debe colocar la cláusula Order By antes de la cláusula Select.Therefore, if you want to order your results by a field that is not available in the Select clause, you must put the Order By clause before the Select clause. Un ejemplo de Cuándo tendría que hacer esto es cuando desea ordenar la consulta por campos que no se devuelven como parte del resultado.One example of when you would have to do this is when you want to sort your query by fields that are not returned as part of the result.

El orden ascendente y descendente de un campo viene determinado por la implementación de la interfaz IComparable para el tipo de datos del campo.Ascending and descending order for a field is determined by the implementation of the IComparable interface for the data type of the field. Si el tipo de datos no implementa la interfaz IComparable, se omite el criterio de ordenación.If the data type does not implement the IComparable interface, the sort order is ignored.

EjemploExample

La siguiente expresión de consulta utiliza una cláusula From para declarar una variable de rango book para la colección books.The following query expression uses a From clause to declare a range variable book for the books collection. La cláusula Order By ordena el resultado de la consulta por precio en orden ascendente (el valor predeterminado).The Order By clause sorts the query result by price in ascending order (the default). Los libros con el mismo precio se ordenan por título en orden ascendente.Books with the same price are sorted by title in ascending order. La cláusula Select selecciona las propiedades Title y Price como los valores devueltos por la consulta.The Select clause selects the Title and Price properties as the values returned by the query.

Dim titlesAscendingPrice = From book In books
                           Order By book.Price, book.Title
                           Select book.Title, book.Price

EjemploExample

La siguiente expresión de consulta utiliza la cláusula Order By para ordenar el resultado de la consulta por precio en orden descendente.The following query expression uses the Order By clause to sort the query result by price in descending order. Los libros con el mismo precio se ordenan por título en orden ascendente.Books with the same price are sorted by title in ascending order.

Dim titlesDescendingPrice = From book In books
                            Order By book.Price Descending, book.Title
                            Select book.Title, book.Price

EjemploExample

La siguiente expresión de consulta utiliza una cláusula Select para seleccionar el título del libro, el precio, la fecha de publicación y el autor.The following query expression uses a Select clause to select the book title, price, publish date, and author. A continuación, rellena los campos Title, Price, PublishDatey Author de la variable de rango para el nuevo ámbito.It then populates the Title, Price, PublishDate, and Author fields of the range variable for the new scope. La cláusula Order By ordena la nueva variable de rango por nombre de autor, título del libro y, a continuación, precio.The Order By clause orders the new range variable by author name, book title, and then price. Cada columna se ordena en el orden predeterminado (ascendente).Each column is sorted in the default order (ascending).

Dim bookOrders =
  From book In books
  Select book.Title, book.Price, book.PublishDate, book.Author
  Order By Author, Title, Price

Vea tambiénSee also