Cláusula Order By (Visual Basic)

Especifica a ordem de classificação de um resultado de consulta.

Sintaxe

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

Partes

orderExp1 Necessário. Um ou mais campos do resultado da consulta atual que identificam como ordenar os valores retornados. Os nomes de campo devem ser separados por vírgulas (,). Você pode identificar cada campo como classificado em ordem crescente ou decrescente usando as palavras-chave Ascending ouDescending. Se nenhuma palavra-chave Ascending ou Descending for especificada, a ordem de classificação padrão será crescente. Os campos de ordem de classificação têm precedência da esquerda para a direita.

Comentários

Você pode usar a cláusula Order By para classificar os resultados de uma consulta. A cláusula Order By só pode classificar um resultado com base na variável de intervalo para o escopo atual. Por exemplo, a cláusula Select introduz um novo escopo em uma expressão de consulta com novas variáveis de iteração para esse escopo. As variáveis de intervalo definidas antes de uma cláusula Select em uma consulta não estão disponíveis após Select. Portanto, se você quiser ordenar os resultados por um campo que não esteja disponível na cláusula Select, deverá colocar a Order By antes de Select. Um exemplo de quando você teria que fazer isso é quando deseja classificar a consulta por campos que não são retornados como parte do resultado.

A ordem crescente e decrescente de um campo é determinada pela implementação da interface IComparable para o tipo de dados do campo. Se o tipo de dados não implementar a interface IComparable, a ordem de classificação será ignorada.

Exemplo 1

A expressão de consulta a seguir usa uma cláusula From para declarar uma variável de intervalo book para a coleção books. A cláusula Order By classifica o resultado da consulta por preço em ordem crescente (o padrão). Livros com o mesmo preço são classificados por título em ordem crescente. A cláusula Select seleciona as propriedades Title e Price como os valores retornados pela consulta.

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

Exemplo 2

A expressão de consulta a seguir usa a cláusula Order By para classificar o resultado da consulta por preço em ordem decrescente. Livros com o mesmo preço são classificados por título em ordem crescente.

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

Exemplo 3

A expressão de consulta a seguir usa uma cláusula Select para selecionar o título do livro, o preço, a data de publicação e o autor. Em seguida, ele preenche os campos Title, Price, PublishDate e Author da variável de intervalo para o novo escopo. A cláusula Order By ordena a nova variável de intervalo por nome do autor, título do livro e preço. Cada coluna é classificada na ordem padrão (crescente).

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

Confira também