Order By (Cláusula, Visual Basic)
Especifica el criterio de ordenación del resultado de una consulta.
Order By orderExp1 [ Ascending | Descending ] [, orderExp2 [...] ]
Partes
- orderExp1
Obligatorio. Uno o más campos del resultado de la consulta actual que identifican cómo ordenar los valores devueltos. Los nombres de campo deben estar separados por una coma (,). Puede identificar cada campo como ordenado en orden ascendente o descendente utilizando las palabras clave Ascending o Descending. Si no se especifican las palabras clave Ascending o Descending, el criterio de ordenación predeterminado es ascendente. La prioridad de los campos del criterio de ordenación es de izquierda a derecha.
Comentarios
Puede utilizar la cláusula Order By para ordenar los resultados de una consulta. La cláusula Order By sólo puede ordenar un resultado basándose en la variable de rango del ámbito actual. Por ejemplo, la cláusula Select presenta un nuevo ámbito en una expresión de consulta con nuevas variables de iteración para el mismo. Las variables de rango definidas delante de una cláusula Select en una consulta no están disponibles detrás de la cláusula Select. Por consiguiente, si desea ordenar los resultados por un campo que no esté disponible en la cláusula Select, debe colocar la cláusula Order By delante de la cláusula Select. Un ejemplo de cuándo debería hacer esto es si desea ordenar la consulta por campos que no se devuelven como parte del resultado.
La implementación de la interfaz IComparable determina el orden ascendente o descendente de un campo para el tipo de datos del campo. Si el tipo de datos no implementa la interfaz IComparable, se omite el criterio de ordenación.
Ejemplo
La siguiente expresión de consulta usa una cláusula From para declarar una variable de rango book de la colección books. La cláusula Order By ordena el resultado de la consulta por precio en orden ascendente (el valor predeterminado). Los libros con el mismo precio se ordenan por título en orden ascendente. La cláusula Select selecciona las propiedades Title y Price como los valores devueltos por la consulta.
Dim titlesAscendingPrice = From book In books
Order By book.Price, book.Title
Select book.Title, book.Price
La expresión de consulta siguiente utiliza la cláusula Order By para ordenar el resultado de la consulta por precio en orden descendente. Los libros con el mismo precio se ordenan por título en orden ascendente.
Dim titlesDescendingPrice = From book In books
Order By book.Price Descending, book.Title
Select book.Title, book.Price
La expresión de consulta siguiente utiliza una cláusula Select para seleccionar el título, precio, fecha de publicación y autor del libro. Después rellena los campos Title, Price, PublishDate y Author de la variable de rango del nuevo ámbito. La cláusula Order By ordena la nueva variable de rango por el nombre del autor, título del libro y, a continuación, precio. Cada columna está ordenada en el orden predeterminado (ascendente).
Dim bookOrders =
From book In books
Select book.Title, book.Price, book.PublishDate, book.Author
Order By Author, Title, Price
Vea también
Referencia
Select (Cláusula, Visual Basic)
Conceptos
Introducción a LINQ en Visual Basic