Ordenar por cláusula (Visual Basic)
Especifica a ordem de classificação para 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 dos campos devem ser separados por vírgulas (,). Você pode identificar cada campo como classificado em ordem crescente ou decrescente usando as Ascending
palavras-chave ou Descending
. Se no Ascending
ou Descending
palavra-chave for especificado, 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.
Observações
Você pode usar a Order By
cláusula para classificar os resultados de uma consulta. A Order By
cláusula só pode classificar um resultado com base na variável range para o escopo atual. Por exemplo, a Select
cláusula 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 Select
cláusula em uma consulta não estão disponíveis após a Select
cláusula. Portanto, se você quiser ordenar seus resultados por um campo que não está disponível na Select
cláusula, você deve colocar a Order By
cláusula antes da Select
cláusula. Um exemplo de quando você teria que fazer isso é quando deseja classificar sua 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 IComparable interface para o tipo de dados do campo. Se o tipo de dados não implementar a IComparable interface, a ordem de classificação será ignorada.
Exemplo 1
A expressão de consulta a seguir usa uma From
cláusula para declarar uma variável book
de intervalo para a books
coleção. A Order By
cláusula classifica o resultado da consulta por preço em ordem crescente (o padrão). Os livros com o mesmo preço são ordenados por título por ordem crescente. A Select
cláusula seleciona as Title
propriedades 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 Order By
cláusula para classificar o resultado da consulta por preço em ordem decrescente. Os livros com o mesmo preço são ordenados por título por 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 Select
cláusula para selecionar o título do livro, o preço, a data de publicação e o autor. Em seguida, ele preenche os Title
campos , Price
, PublishDate
e Author
da variável de intervalo para o novo escopo. A Order By
cláusula ordena a nova variável de intervalo por nome do autor, título do livro e, em seguida, 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