Order By (Cláusula, Visual Basic)
Especifica el criterio de ordenación en el resultado de una consulta.
Sintaxis
Order By orderExp1 [ Ascending | Descending ] [, orderExp2 [...] ]
Partes
orderExp1
Obligatorio. Uno o varios campos del resultado de la consulta actual que identifican cómo ordenar los valores devueltos. Los nombres de campo deben estar separados por comas (,). Puede identificar cada campo como ordenado en orden ascendente o descendente mediante las palabras clave Ascending
o Descending
. Si no se especifica ninguna palabra clave Ascending
o Descending
, el criterio de ordenación predeterminado es ascendente. Los campos de criterio de ordenación tienen prioridad de izquierda a derecha.
Comentarios
Puede usar la cláusula Order By
para ordenar los resultados de una consulta. La cláusula Order By
solo puede ordenar un resultado en función de la variable de intervalo para el ámbito actual. 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. Las variables de intervalo definidas antes de una cláusula Select
de una consulta no están disponibles después de la cláusula Select
. Por lo tanto, si quiere 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
. Un ejemplo de cuándo tendría que hacerlo es cuando quiere ordenar la consulta por campos que no se devuelven como parte del resultado.
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. Si el tipo de datos no implementa la interfaz IComparable, se omite el criterio de ordenación.
Ejemplo 1
La siguiente expresión de consulta usa una cláusula From
para declarar una variable de rango book
para la colección books
. La cláusula Order By
ordena el resultado de la consulta por precio en orden ascendente (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
Ejemplo 2
La siguiente expresión de consulta usa 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
Ejemplo 3
La siguiente expresión de consulta usa una cláusula Select
para seleccionar el título del libro, el precio, la fecha de publicación y el autor. Posteriormente, rellena los campos Title
, Price
, PublishDate
y Author
de la variable de intervalo para el nuevo ámbito. La cláusula Order By
ordena la nueva variable de rango por el nombre del autor, el título del libro y el precio. Cada columna se ordena 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