Vue d’ensemble
L'instruction RETURN
vous permet de spécifier les colonnes à inclure dans la table finale. Chaque colonne est définie par une expression pouvant inclure des variables, des propriétés, des fonctions, des constantes, etc.
<return statement> ::=
"RETURN" [ <set quantifier> ] { <"*"> | <return item list> }
[ <group by clause> ]
<return item list> ::= <return item> [ { "," <return item> }... ]
<return item> ::= <value expression> [ <return item alias> ]
<return item alias> ::= "AS" <identifier>
<set quantifier> ::= "DISTINCT" | "ALL"
Détails
- Lorsque le quantificateur d'ensemble
DISTINCT
est spécifié, chaque élément de retour est un opérande d'une opération de regroupement, les enregistrements en double sont supprimés et seuls les distincts sont retournés. *
retourne toutes les colonnes de la table de travail actuelle.- Le mot-clé
AS
est utilisé pour renommer les colonnes. - L'instruction
RETURN
prend en charge l'utilisation de la clauseGROUP BY
pour regrouper la table finale en spécifiant des clés de regroupement.
Exemple de Graphe
Les exemples suivants s'exécutent sur ce graphe :
Pour créer ce graphe, exécutez la requête suivante sur un graphe vide :
INSERT (alex:Student {_id: 's1', name: 'Alex', gender: 'male'}),
(susan:Student {_id: 's2', name: 'Susan', gender: 'female'}),
(art:Course {_id: 'c1', name: 'Art', credit: 13}),
(literature:Course {_id: 'c2', name: 'Literature', credit: 15}),
(alex)-[:Take {year: 2024, term: 'Spring'}]->(art),
(susan)-[:Take {year: 2023, term: 'Fall'}]->(art),
(susan)-[:Take {year: 2023, term: 'Spring'}]->(literature)
Retourner les nœuds
Une variable liée aux nœuds retourne le label et les propriétés de chaque nœud.
MATCH (n:Course)
RETURN n
Résultat: n
_id | _uuid | schema | valeurs |
---|---|---|---|
c1 | Sys-gen | Course | {name: "Art", credit: 13} |
c2 | Sys-gen | Course | {name: "Literature", credit: 15} |
Retourner les arêtes
Une variable liée aux arêtes retourne le label et les propriétés de chaque arête.
MATCH ()-[e]->()
RETURN e
Résultat: e
_uuid |
_from |
_to |
_from_uuid |
_to_uuid |
schema |
valeurs |
---|---|---|---|---|---|---|
Sys-gen | s2 | c1 | UUID of s2 | UUID of c1 | Take | {year: 2023, term: "Fall"} |
Sys-gen | s2 | c2 | UUID of s2 | UUID of c2 | Take | {year: 2023, term: "Spring"} |
Sys-gen | s1 | c1 | UUID of s1 | UUID of c1 | Take | {year: 2024, term: "Spring"} |
Retourner les chemins
Une variable liée aux chemins retourne les nœuds et arêtes inclus dans chaque chemin. Chaque élément inclut son label et ses propriétés.
MATCH p = ()-[:Take {term: "Spring"}]->()
RETURN p
Résultat:
p |
---|
(:Student {_id: "s1", gender: "male", name: "Alex"})-[:Take {year: 2024, term: "Spring"}]->(:Course {_id: "c1", name: "Art", credit: 13}) |
(:Student {_id: "s2", gender: "female", name: "Susan"})-[:Take {year: 2023, term: "Spring"}]->(:Course {_id: "c2", name: "Literature", credit: 15}) |
Retourner les labels
La fonction labels()
peut être utilisée pour retourner les labels des nœuds et arêtes.
MATCH ({_id: "s2"})-[e]->(n)
RETURN labels(e), labels(n)
Résultat:
labels(e) | labels(n) |
---|---|
Take | Course |
Take | Course |
Retourner les propriétés
L'opérateur point .
peut être utilisé pour extraire la valeur d'une propriété spécifiée à partir d'une variable liée aux nœuds ou arêtes. La valeur null
sera retournée si la propriété spécifiée n'est pas trouvée sur les nœuds ou arêtes.
MATCH (:Student {name:"Susan"})-[]->(c:Course)
RETURN c.name, c.credit, c.type
Résultat:
c.name | c.credits | c.type |
---|---|---|
Literature | 15 | null |
Art | 13 | null |
Retourner tout
*
est utilisé pour retourner toutes les colonnes dans la table de travail actuelle.
MATCH (s:Student {name:"Susan"})-[]->(c:Course)
RETURN *
Résultat:
s
_id | _uuid | schema | valeurs |
---|---|---|---|
s2 | Sys-gen | Student | {name: "Susan", gender: "female"} |
s2 | Sys-gen | Student | {name: "Susan", gender: "female"} |
c
_id | _uuid | schema | valeurs |
---|---|---|---|
c1 | Sys-gen | Course | {name: "Art", credit: 13} |
c2 | Sys-gen | Course | {name: "Literature", credit: 15} |
Alias de colonne
Le mot-clé AS
est utilisé pour renommer les colonnes retournées.
MATCH (s:Student)-[t:Take]->(c:Course)
RETURN s.name AS Student, c.name AS Course, t.year AS TakenIn
Résultat:
Student | Course | TakenIn |
---|---|---|
Alex | Art | 2024 |
Susan | Art | 2023 |
Susan | Literature | 2023 |
Retourner des enregistrements distincts
Le quantificateur d'ensemble DISTINCT
peut être utilisé pour retourner des enregistrements dédupliqués.
MATCH ()-[e]->()
RETURN DISTINCT e.year
Résultat:
e.year |
---|
2023 |
2024 |
Retourner avec agrégation
Les fonctions d'agrégation, comme sum()
et max()
, peuvent être directement appliquées dans l'instruction RETURN
.
MATCH (:Student {name:"Susan"})-[]->(c:Course)
RETURN sum(c.credit)
Résultat:
sum(c.credit) |
---|
28 |
Retourner par CAS
Les fonctions CASE
peuvent être directement appliquées dans l'instruction RETURN
.
MATCH (n:Course)
RETURN n.name AS Course, CASE WHEN n.credit > 14 THEN "Y" ELSE "N" END AS Recommended
Résultat:
Course | Recommended |
---|---|
Art | N |
Literature | Y |
Retourner des enregistrements limités
L'instruction LIMIT
peut être utilisée pour restreindre le nombre de lignes retournées.
MATCH (n:Course)
RETURN n.name LIMIT 1
Résultat:
n.name |
---|
Art |
Retourner des enregistrements ordonnés
L'instruction ORDER BY
peut être utilisée pour trier les lignes selon les valeurs spécifiées.
MATCH (n:Course)
RETURN n ORDER BY n.credit DESC
Résultat: n
_id | _uuid | schema | valeurs |
---|---|---|---|
c2 | Sys-gen | Course | {name: "Literature", credit: 15} |
c1 | Sys-gen | Course | {name: "Art", credit: 13} |
Retourner avec regroupement
La clause GROUP BY
peut être utilisée optionnellement pour regrouper la table finale.
MATCH ()-[e:Take]->()
RETURN e.term AS Term, count(e) GROUP BY Term
Résultat:
Term | e.year |
---|---|
Spring | 2 |
Fall | 1 |