Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La SELECT clause identifie les champs à retourner dans les résultats de la requête. La clause projette ensuite ces champs dans le jeu de résultats JSON.
Chaque requête se compose d’une SELECT clause et éventuellement FROM de WHERE clauses, conformément aux normes ANSI SQL. En règle générale, la source de la FROM clause est énumérée et la WHERE clause applique un filtre sur la source pour récupérer un sous-ensemble d’éléments JSON.
Syntaxe
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
| Descriptif | |
|---|---|
select_specification |
Propriétés ou valeur à sélectionner pour le jeu de résultats. |
* |
Spécifie que la valeur doit être récupérée sans apporter de modifications. Plus précisément si la valeur traitée est un objet, toutes les propriétés sont récupérées. |
object_property_list |
Spécifie la liste des propriétés à récupérer. Chaque valeur retournée est un objet avec les propriétés spécifiées. |
VALUE |
Spécifie que la valeur JSON doit être récupérée au lieu de l’objet JSON complet. Cet argument, contrairement <à property_list> n’encapsule pas la valeur projetée dans un objet. |
DISTINCT |
Spécifie que les doublons des propriétés projetées doivent être supprimées. |
scalar_expression |
Expression représentant la valeur à calculer. |
Types de retour
Retourne les champs ou valeurs projetés comme spécifié.
Examples
Cette section contient des exemples d’utilisation de cette construction de langage de requête.
Sélectionner des valeurs de chaîne statique
Dans cet exemple, deux valeurs de chaîne statique et retourne un tableau avec un seul objet contenant les deux valeurs. Étant donné que les valeurs ne sont pas nommées, un nombre généré séquentiel est utilisé pour nommer le champ json équivalent.
SELECT
"Cosmic", "Works"
[
{
"$1": "Cosmic",
"$2": "Works"
}
]
Champs de projet
Dans cet exemple, la projection JSON est utilisée pour affiner la structure exacte et les noms de champs pour l’objet JSON résultant. Ici, un objet JSON est créé avec des champs nommés identifier et model. L’objet JSON externe n’est toujours pas nommé. Par conséquent, un nombre généré ($1) est utilisé pour nommer ce champ.
SELECT {
identifier: p.name,
model: p.sku
}
FROM
products p
[
{
"$1": {
"identifier": "Remdriel Shoes",
"model": "61506"
}
},
{
"$1": {
"identifier": "Tirevy trunks",
"model": "73402"
}
},
...
]
Chaîne statique de projet
Dans cet exemple, le mot clé VALUE est utilisé avec une chaîne statique pour créer un tableau de chaînes en conséquence.
SELECT VALUE
"Cosmic Works"
[
"Cosmic Works"
]
Projection complexe
Dans cet exemple, la requête utilise une combinaison d’une SELECT clause, du VALUE mot clé, d’une FROM clause et de la projection JSON pour effectuer une requête commune avec les résultats transformés en objet JSON pour que le client analyse.
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"
},
...
]
Remarques
- La syntaxe n’est valide que si
FROMlaSELECT *clause a déclaré exactement un alias.SELECT *fournit une projection d’identité, qui peut être utile si aucune projection n’est nécessaire.SELECT *est valide uniquement siFROMla clause est spécifiée et n’a introduit qu’une seule source d’entrée. - Les deux
SELECT <select_list>sontSELECT *le sucre syntaxique et peuvent être exprimés à l’aide d’instructions simplesSELECT. - L’expression
SELECT * FROM ... AS from_alias ...est équivalente àSELECT from_alias FROM ... AS from_alias .... - L’expression
SELECT <expr1> AS p1, <expr2> AS p2,..., <exprN> AS pN [other clauses...]est équivalente àSELECT VALUE { p1: <expr1>, p2: <expr2>, ..., pN: <exprN> }[other clauses...].