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