diff --git a/modules/ROOT/pages/clauses/where.adoc b/modules/ROOT/pages/clauses/where.adoc index aad77710a..bd5c42260 100644 --- a/modules/ROOT/pages/clauses/where.adoc +++ b/modules/ROOT/pages/clauses/where.adoc @@ -43,13 +43,14 @@ CREATE (andy:Swedish:Person {name: 'Andy', age: 36}), == Basic filtering .Filter on a node label +// tag::clauses_where_node_label[] [source, cypher] ---- MATCH (n) WHERE n:Swedish RETURN n.name AS name ---- -// end::clauses_where_in_match_clause[] +// end::clauses_where_node_label[] .Result [role="queryresult",options="header,footer",cols="1*(f) WHERE k.since < 2000 RETURN f.name AS oldFriend ---- +// end::clauses_where_relationship_property[] .Result [role="queryresult",options="header,footer",cols="1* 40 RETURN n.name AS name, n.age AS age ---- +// end::clauses_where_dynamic[] .Result [role="queryresult",options="header,footer",cols="2*(b:Person WHERE b.age > minAge) RETURN b.name AS name ---- +// end::clauses_where_node_pattern[] .Result [role="queryresult",options="header,footer",cols="1*(b:Person) | r.since] AS years If matching for variable length patterns, `WHERE` can only be used together with the xref:patterns/variable-length-patterns.adoc#quantified-path-patterns[quantified path pattern] or xref:patterns/variable-length-patterns.adoc#quantified-relationships[quantified relationships] syntax. .Allowed - `WHERE` predicate inside a quantified relationship +// tag::clauses_where_var_length[] [source, cypher] ---- MATCH p = (a:Person {name: "Andy"})-[r:KNOWS WHERE r.since < 2011]->{1,4}(:Person) RETURN [n IN nodes(p) | n.name] AS paths ---- +// end::clauses_where_var_length[] -Note that any path´s including `Timothy` and `Susan` are excluded by the `WHERE` predicate, since their incoming `KNOWS` relationships both have a `since` value that is higher than `2011.` +Note that any paths including `Timothy` and `Susan` are excluded by the `WHERE` predicate, since their incoming `KNOWS` relationships both have a `since` value that is higher than `2011.` .Result [role="queryresult",options="header,footer",cols="1* 2 | n] AS filteredList ---- +// end::expressions_list_comprehension[] .Result [role="queryresult",options="header,footer",cols="1*(alice) | employee.name] AS employees ---- +// end::expressions_list_pattern_comprehension[] .Result [role="queryresult",options="header,footer",cols="1*(alice) | employee.name] AS employees Pattern comprehensions can include `WHERE` predicates. .Pattern comprehension including a `WHERE` predicate +// tag::expressions_list_pattern_comprehension_where[] [source, cypher] ---- MATCH (alice:Person {name: 'Alice'}) RETURN [(employee:Person)-[:WORKS_FOR]->(alice) WHERE employee.age > 30 | employee.name || ', ' || toString(employee.age)] AS employeesAbove30 ---- +// end::expressions_list_pattern_comprehension_where[] .Result [role="queryresult",options="header,footer",cols="1*(manager:Person) @@ -69,6 +70,7 @@ RETURN employee.firstName AS employee, r.since AS employedSince, manager.firstName AS manager ---- +// end::expressions_node_relationship_operators_static_property_access[] .Result [role="queryresult",options="header,footer",cols="3* 30 AND n.role = 'Software developer' RETURN n.name AS name, n.age AS age, n.role AS role ---- +// end::expressions_predicates_boolean_operators_and[] .Result [role="queryresult",options="header,footer",cols="3* 30 XOR n.role = 'Software developer' RETURN n.name AS name, n.age AS age, n.role AS role ---- +// end::expressions_predicates_boolean_operators_xor[] .Result [role="queryresult",options="header,footer",cols="3*`) +// tag::expressions_predicates_comparison_operators_inequality[] [source, cypher] ---- MATCH (n:Person) WHERE n.role <> 'Software developer' RETURN n.name AS name, n.role AS role ---- +// end::expressions_predicates_comparison_operators_inequality[] .Result [role="queryresult",options="header,footer",cols="2*`) +// tag::expressions_predicates_comparison_operators_greater_than[] [source, cypher] ---- MATCH (n:Person) WHERE n.age > 39 RETURN n.name AS name, n.age AS age ---- +// end::expressions_predicates_comparison_operators_greater_than[] .Result [role="queryresult",options="header,footer",cols="2*=`) +// tag::expressions_predicates_comparison_operators_greater_than_or_equal[] [source, cypher] ---- MATCH (n:Person) WHERE n.age >= 39 RETURN n.name AS name, n.age AS age ---- +// end::expressions_predicates_comparison_operators_greater_than_or_equal[] .Result [role="queryresult",options="header,footer",cols="2*(:Person {name: 'Alice'}) RETURN employee.name AS employee ---- +// end::expressions_predicates_path_pattern_expression[] .Result [role="queryresult",options="header,footer",cols="1*(:Person {name: 'Alice'}) RETURN employee.name AS employee ---- +// end::expressions_predicates_path_pattern_expression_boolean[] .Result diff --git a/modules/ROOT/pages/expressions/predicates/string-operators.adoc b/modules/ROOT/pages/expressions/predicates/string-operators.adoc index 3cc6a7c96..8ad3e7d09 100644 --- a/modules/ROOT/pages/expressions/predicates/string-operators.adoc +++ b/modules/ROOT/pages/expressions/predicates/string-operators.adoc @@ -40,13 +40,14 @@ CREATE (alice:Person {name:'Alice', age: 65, role: 'Project manager', email: 'al ===== .`STARTS WITH` operator +// tag::expressions_predicates_string_operators_prefix[] [source, cypher] ---- MATCH (n:Person) WHERE n.name STARTS WITH 'C' RETURN n.name AS name ---- - +// end::expressions_predicates_string_operators_prefix[] .Result [role="queryresult",options="header,footer",cols="1* 18 RETURN n.name AS name, n.age AS age ---- +// end::expressions_predicates_type_predicate_properties[] [role="queryresult",options="header,footer",cols="2* Importing variables]. .Query +// tag::combined_queries_post_union_processing[] [source, cypher] ---- CALL () { @@ -153,6 +154,7 @@ UNION ALL RETURN name, count(*) AS count ORDER BY count ---- +// end::combined_queries_post_union_processing[] .Result [role="queryresult",options="header,footer",cols="2*