Partilhar via


ORDER BY (consulta NoSQL)

APLICA-SE A: NoSQL

A cláusula opcional ORDER BY especifica a ordem de classificação dos resultados retornados pela consulta.

Sintaxe

ORDER BY <sort_specification>  
<sort_specification> ::= <sort_expression> [, <sort_expression>]  
<sort_expression> ::= {<scalar_expression> [ASC | DESC]} [ ,...n ]

Argumentos

Description
<sort_specification> Especifica uma propriedade ou expressão na qual classificar o conjunto de resultados da consulta. Uma coluna de classificação pode ser especificada como um nome ou alias de propriedade. Várias propriedades podem ser especificadas. Os nomes das propriedades devem ser exclusivos. A sequência das propriedades de classificação na ORDER BY cláusula define a organização do conjunto de resultados classificados. Ou seja, o conjunto de resultados é classificado pela primeira propriedade e, em seguida, essa lista ordenada é classificada pela segunda propriedade, e assim por diante. Os nomes de ORDER BY propriedade mencionados na cláusula devem corresponder a uma propriedade na lista de seleção ou a uma propriedade definida na coleção especificada na FROM cláusula sem quaisquer ambiguidades.
<sort_expression> Especifica uma ou mais propriedades ou expressões nas quais classificar o conjunto de resultados da consulta.
<scalar_expression> Expressão que representa o valor a ser calculado.
ASC ou DESC Especifica que os valores na coluna especificada devem ser classificados em ordem crescente ou decrescente. ASC classifica do menor valor para o maior valor. DESC classifica do valor mais alto para o valor mais baixo. Se esse argumento não for especificado, ASC (crescente) será a ordem de classificação padrão. null são tratados como os valores mais baixos possíveis.

Nota

Para obter mais informações sobre expressões escalares, consulte expressões escalares

Exemplos

Para os exemplos nesta seção, este conjunto de referência de itens é usado. Cada item contém uma name propriedade com first e last subpropriedades.

[
  {
    "name": {
      "first": "Casey",
      "last": "Jensen"
    },
    "team": "Human resources"
  },
  {
    "name": {
      "first": "Amari",
      "last": "Rivera"
    },
    "team": "Human resources"
  },
  {
    "name": {
      "first": "Kayla",
      "last": "Lewis"
    },
    "team": "Human resources"
  }
]

Neste primeiro exemplo, a ORDER BY cláusula é usada para classificar um campo pela ordem de classificação padrão, ascendente.

SELECT VALUE {
    firstName: e.name.first,
    lastName: e.name.last
}
FROM
    employees e
ORDER BY
    e.name.last
[
  {
    "firstName": "Casey",
    "lastName": "Jensen"
  },
  {
    "firstName": "Kayla",
    "lastName": "Lewis"
  },
  {
    "firstName": "Amari",
    "lastName": "Rivera"
  }
]

Neste próximo exemplo, a ordem de classificação é explicitamente especificada como decrescente.

SELECT VALUE {
    firstName: e.name.first,
    lastName: e.name.last
}
FROM
    employees e
ORDER BY
    e.name.last DESC
[
  {
    "firstName": "Amari",
    "lastName": "Rivera"
  },
  {
    "firstName": "Kayla",
    "lastName": "Lewis"
  },
  {
    "firstName": "Casey",
    "lastName": "Jensen"
  }
]

Neste exemplo final, os itens são classificados usando dois campos, em uma ordem específica, usando ordenação explicitamente especificada. Uma consulta que classifica usando dois ou mais campos requer um índice composto.

SELECT VALUE {
    firstName: e.name.first,
    lastName: e.name.last
}
FROM
    employees e
ORDER BY
    e.name.last DESC,
    e.name.first ASC

Observações

  • Consultas com ORDER BY devolução de todos os itens, incluindo itens em que a propriedade na cláusula ORDER BY não está definida. Normalmente, não é possível controlar a ordem em que diferentes undefined tipos aparecem nos resultados. Para controlar a ordem de classificação de valores indefinidos, atribua a quaisquer undefined propriedades um valor arbitrário para garantir que elas sejam classificadas antes ou depois dos valores definidos.
  • A ORDER BY cláusula exige que a política de indexação inclua um índice para os campos que estão sendo classificados. O tempo de execução da consulta oferece suporte à classificação em relação a um nome de propriedade ou propriedades computadas. O tempo de execução também suporta várias ORDER BY propriedades. Para executar uma consulta com várias ORDER BY propriedades, defina um índice composto nos campos que estão sendo classificados.
  • Se as propriedades que estão sendo classificadas podem ser undefined para alguns itens e você deseja recuperá-los em uma ORDER BY consulta, você deve incluir explicitamente esse caminho no índice. A política de indexação padrão não permite a recuperação dos itens em que a propriedade sort é undefined.