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

Consulte también