Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A SELECT cláusula identifica os campos a serem retornados nos resultados da consulta. Em seguida, a cláusula projeta esses campos no conjunto de resultados JSON.
Cada consulta consiste em uma SELECT cláusula e opcionalmente FROM e WHERE cláusulas, de acordo com os padrões ANSI SQL. Normalmente, a FROM fonte na cláusula é enumerada e a WHERE cláusula aplica um filtro na origem para recuperar um subconjunto de itens JSON.
Sintaxe
SELECT <select_specification>
<select_specification> ::=
'*'
| [DISTINCT] <object_property_list>
| [DISTINCT] VALUE <scalar_expression> [[ AS ] value_alias]
<object_property_list> ::=
{ <scalar_expression> [ [ AS ] property_alias ] } [ ,...n ]
Arguments
| Description | |
|---|---|
select_specification |
Propriedades ou valor a ser selecionado para o conjunto de resultados. |
* |
Especifica que o valor deve ser recuperado sem fazer alterações. Especificamente, se o valor processado for um objeto, todas as propriedades serão recuperadas. |
object_property_list |
Especifica a lista de propriedades a serem recuperadas. Cada valor retornado é um objeto com as propriedades especificadas. |
VALUE |
Especifica que o valor JSON deve ser recuperado em vez do objeto JSON completo. Esse argumento, ao contrário <de property_list> não encapsula o valor projetado em um objeto. |
DISTINCT |
Especifica que duplicatas de propriedades projetadas devem ser removidas. |
scalar_expression |
Expressão que representa o valor a ser calculado. |
Tipos de devolução
Retorna os campos ou valores projetados conforme especificado.
Examples
Esta seção contém exemplos de como usar essa construção de linguagem de consulta.
Selecionar valores de cadeia de caracteres estática
Neste exemplo, dois valores de cadeia de caracteres estática e retorna uma matriz com um único objeto contendo ambos os valores. Como os valores não são nomeados, um número gerado sequencial é usado para nomear o campo json equivalente.
SELECT
"Cosmic", "Works"
[
{
"$1": "Cosmic",
"$2": "Works"
}
]
Campos do projeto
Neste exemplo, a projeção JSON é usada para ajustar a estrutura exata e os nomes de campo para o objeto JSON resultante. Aqui, um objeto JSON é criado com campos chamados identifier e model. O objeto JSON externo ainda não tem nome, portanto, um número gerado ($1) é usado para nomear esse campo.
SELECT {
identifier: p.name,
model: p.sku
}
FROM
products p
[
{
"$1": {
"identifier": "Remdriel Shoes",
"model": "61506"
}
},
{
"$1": {
"identifier": "Tirevy trunks",
"model": "73402"
}
},
...
]
Cadeia de caracteres estática do projeto
Neste exemplo, a palavra-chave VALUE é usada com uma cadeia de caracteres estática para criar uma matriz de cadeias de caracteres como resultado.
SELECT VALUE
"Cosmic Works"
[
"Cosmic Works"
]
Projeção complexa
Neste exemplo, a consulta usa uma combinação de uma SELECT cláusula, a VALUE palavra-chave, uma FROM cláusula e projeção JSON para executar uma consulta comum com os resultados transformados em um objeto JSON para o cliente analisar.
SELECT VALUE {
name: p.name,
link: p.metadata.link,
firstTag: p.tags[0]["value"]
}
FROM
products p
[
{
"name": "Remdriel Shoes",
"link": "https://www.adventure-works.com/remdriel-shoes/68719521615.p",
"firstTag": "suede-leather-and-mesh"
},
{
"name": "Tirevy trunks",
"link": "https://www.adventure-works.com/tirevy-trunks/68719520573.p",
"firstTag": "polyester"
},
...
]
Observações
- A
SELECT *sintaxe só é válida seFROMa cláusula tiver declarado exatamente um alias.SELECT *fornece uma projeção de identidade, que pode ser útil se nenhuma projeção for necessária.SELECT *só é válida seFROMa cláusula for especificada e introduzida apenas uma única fonte de entrada. - Ambos
SELECT <select_list>sãoSELECT *açúcar sintático e podem ser expressos usando afirmações simplesSELECT. - A expressão
SELECT * FROM ... AS from_alias ...é equivalente aSELECT from_alias FROM ... AS from_alias .... - A expressão
SELECT <expr1> AS p1, <expr2> AS p2,..., <exprN> AS pN [other clauses...]é equivalente aSELECT VALUE { p1: <expr1>, p2: <expr2>, ..., pN: <exprN> }[other clauses...].