12.2. Scalar functions
Scalar functions return a single value.
LENGTH
To return or filter on the length of a collection, use the LENGTH()
function.
Syntax: LENGTH( collection )
Arguments:
- collection: An expression that returns a collection
Query.
MATCH p=(a)-->(b)-->(c) WHERE a.name='Alice' RETURN length(p)
The length of the path p
is returned by the query.
Result
length(p) |
---|
3 rows |
|
|
|
Try this query live. create (_0 {`age`:54, `eyes`:"brown", `name`:"Daniel"}) create (_1:`Spouse` {`age`:41, `array`:["one", "two", "three"], `eyes`:"blue", `name`:"Eskil"}) create (_2:`foo`:`bar` {`age`:38, `eyes`:"brown", `name`:"Alice"}) create (_3 {`age`:25, `eyes`:"blue", `name`:"Bob"}) create (_4 {`age`:53, `eyes`:"green", `name`:"Charlie"}) create _2-[:`KNOWS`]->_3 create _2-[:`KNOWS`]->_4 create _3-[:`KNOWS`]->_0 create _3-[:`MARRIED`]->_1 create _4-[:`KNOWS`]->_0 match p=(a)-->(b)-->(c) where a.name='Alice' return length(p)
TYPE
Returns a string representation of the relationship type.
Syntax: TYPE( relationship )
Arguments:
- relationship: A relationship.
Query.
MATCH (n)-[r]->() WHERE n.name='Alice' RETURN type(r)
The relationship type of r
is returned by the query.
Result
type(r) |
---|
2 rows |
|
|
Try this query live. create (_0 {`age`:54, `eyes`:"brown", `name`:"Daniel"}) create (_1:`Spouse` {`age`:41, `array`:["one", "two", "three"], `eyes`:"blue", `name`:"Eskil"}) create (_2:`foo`:`bar` {`age`:38, `eyes`:"brown", `name`:"Alice"}) create (_3 {`age`:25, `eyes`:"blue", `name`:"Bob"}) create (_4 {`age`:53, `eyes`:"green", `name`:"Charlie"}) create _2-[:`KNOWS`]->_3 create _2-[:`KNOWS`]->_4 create _3-[:`KNOWS`]->_0 create _3-[:`MARRIED`]->_1 create _4-[:`KNOWS`]->_0 match (n)-[r]->() where n.name='Alice' return type(r)
ID
Returns the id of the relationship or node.
Syntax: ID( property-container )
Arguments:
- property-container: A node or a relationship.
Query.
MATCH (a) RETURN id(a)
This returns the node id for three nodes.
Result
id(a) |
---|
5 rows |
|
|
|
|
|
Try this query live. create (_0 {`age`:54, `eyes`:"brown", `name`:"Daniel"}) create (_1:`Spouse` {`age`:41, `array`:["one", "two", "three"], `eyes`:"blue", `name`:"Eskil"}) create (_2:`foo`:`bar` {`age`:38, `eyes`:"brown", `name`:"Alice"}) create (_3 {`age`:25, `eyes`:"blue", `name`:"Bob"}) create (_4 {`age`:53, `eyes`:"green", `name`:"Charlie"}) create _2-[:`KNOWS`]->_3 create _2-[:`KNOWS`]->_4 create _3-[:`KNOWS`]->_0 create _3-[:`MARRIED`]->_1 create _4-[:`KNOWS`]->_0 match (a) return id(a)
COALESCE
Returns the first non-NULL
value in the list of expressions passed to it.
In case all arguments are NULL
, NULL
will be returned.
Syntax: COALESCE( expression [, expression]* )
Arguments:
- expression: The expression that might return NULL.
Query.
MATCH (a) WHERE a.name='Alice' RETURN coalesce(a.hairColor, a.eyes)
Result
coalesce(a.hairColor, a.eyes) |
---|
1 row |
|
Try this query live. create (_0 {`age`:54, `eyes`:"brown", `name`:"Daniel"}) create (_1:`Spouse` {`age`:41, `array`:["one", "two", "three"], `eyes`:"blue", `name`:"Eskil"}) create (_2:`foo`:`bar` {`age`:38, `eyes`:"brown", `name`:"Alice"}) create (_3 {`age`:25, `eyes`:"blue", `name`:"Bob"}) create (_4 {`age`:53, `eyes`:"green", `name`:"Charlie"}) create _2-[:`KNOWS`]->_3 create _2-[:`KNOWS`]->_4 create _3-[:`KNOWS`]->_0 create _3-[:`MARRIED`]->_1 create _4-[:`KNOWS`]->_0 match (a) where a.name='Alice' return coalesce(a.hairColor, a.eyes)
HEAD
HEAD
returns the first element in a collection.
Syntax: HEAD( expression )
Arguments:
- expression: This expression should return a collection of some kind.
Query.
MATCH (a) WHERE a.name='Eskil' RETURN a.array, head(a.array)
The first node in the path is returned.
Result
a.array | head(a.array) |
---|---|
1 row | |
|
|
Try this query live. create (_0 {`age`:54, `eyes`:"brown", `name`:"Daniel"}) create (_1:`Spouse` {`age`:41, `array`:["one", "two", "three"], `eyes`:"blue", `name`:"Eskil"}) create (_2:`foo`:`bar` {`age`:38, `eyes`:"brown", `name`:"Alice"}) create (_3 {`age`:25, `eyes`:"blue", `name`:"Bob"}) create (_4 {`age`:53, `eyes`:"green", `name`:"Charlie"}) create _2-[:`KNOWS`]->_3 create _2-[:`KNOWS`]->_4 create _3-[:`KNOWS`]->_0 create _3-[:`MARRIED`]->_1 create _4-[:`KNOWS`]->_0 match (a) where a.name='Eskil' return a.array, head(a.array)
LAST
LAST
returns the last element in a collection.
Syntax: LAST( expression )
Arguments:
- expression: This expression should return a collection of some kind.
Query.
MATCH (a) WHERE a.name='Eskil' RETURN a.array, last(a.array)
The last node in the path is returned.
Result
a.array | last(a.array) |
---|---|
1 row | |
|
|
Try this query live. create (_0 {`age`:54, `eyes`:"brown", `name`:"Daniel"}) create (_1:`Spouse` {`age`:41, `array`:["one", "two", "three"], `eyes`:"blue", `name`:"Eskil"}) create (_2:`foo`:`bar` {`age`:38, `eyes`:"brown", `name`:"Alice"}) create (_3 {`age`:25, `eyes`:"blue", `name`:"Bob"}) create (_4 {`age`:53, `eyes`:"green", `name`:"Charlie"}) create _2-[:`KNOWS`]->_3 create _2-[:`KNOWS`]->_4 create _3-[:`KNOWS`]->_0 create _3-[:`MARRIED`]->_1 create _4-[:`KNOWS`]->_0 match (a) where a.name='Eskil' return a.array, last(a.array)
TIMESTAMP
TIMESTAMP
returns the difference, measured in milliseconds, between the current time and midnight, January 1, 1970 UTC. It will return the same value during the whole one query, even if the query is a long running one.
Syntax: TIMESTAMP()
Arguments:
Query.
RETURN timestamp()
The time in milliseconds is returned.
Result
timestamp() |
---|
1 row |
|
Try this query live. create (_0 {`age`:54, `eyes`:"brown", `name`:"Daniel"}) create (_1:`Spouse` {`age`:41, `array`:["one", "two", "three"], `eyes`:"blue", `name`:"Eskil"}) create (_2:`foo`:`bar` {`age`:38, `eyes`:"brown", `name`:"Alice"}) create (_3 {`age`:25, `eyes`:"blue", `name`:"Bob"}) create (_4 {`age`:53, `eyes`:"green", `name`:"Charlie"}) create _2-[:`KNOWS`]->_3 create _2-[:`KNOWS`]->_4 create _3-[:`KNOWS`]->_0 create _3-[:`MARRIED`]->_1 create _4-[:`KNOWS`]->_0 return timestamp()
STARTNODE
STARTNODE
returns the starting node of a relationship
Syntax: STARTNODE( relationship )
Arguments:
- relationship: An expression that returns a relationship
Query.
MATCH (x:foo)-[r]-() RETURN startNode(r)
Result
startNode(r) |
---|
2 rows |
|
|
Try this query live. create (_0 {`age`:54, `eyes`:"brown", `name`:"Daniel"}) create (_1:`Spouse` {`age`:41, `array`:["one", "two", "three"], `eyes`:"blue", `name`:"Eskil"}) create (_2:`foo`:`bar` {`age`:38, `eyes`:"brown", `name`:"Alice"}) create (_3 {`age`:25, `eyes`:"blue", `name`:"Bob"}) create (_4 {`age`:53, `eyes`:"green", `name`:"Charlie"}) create _2-[:`KNOWS`]->_3 create _2-[:`KNOWS`]->_4 create _3-[:`KNOWS`]->_0 create _3-[:`MARRIED`]->_1 create _4-[:`KNOWS`]->_0 MATCH (x:foo)-[r]-() return startNode(r)
ENDNODE
ENDNODE
returns the end node of a relationship
Syntax: ENDNODE( relationship )
Arguments:
- relationship: An expression that returns a relationship
Query.
MATCH (x:foo)-[r]-() RETURN endNode(r)
Result
endNode(r) |
---|
2 rows |
|
|
Try this query live. create (_0 {`age`:54, `eyes`:"brown", `name`:"Daniel"}) create (_1:`Spouse` {`age`:41, `array`:["one", "two", "three"], `eyes`:"blue", `name`:"Eskil"}) create (_2:`foo`:`bar` {`age`:38, `eyes`:"brown", `name`:"Alice"}) create (_3 {`age`:25, `eyes`:"blue", `name`:"Bob"}) create (_4 {`age`:53, `eyes`:"green", `name`:"Charlie"}) create _2-[:`KNOWS`]->_3 create _2-[:`KNOWS`]->_4 create _3-[:`KNOWS`]->_0 create _3-[:`MARRIED`]->_1 create _4-[:`KNOWS`]->_0 MATCH (x:foo)-[r]-() return endNode(r)
TOINT
TOINT
converts the argument to an integer. A string is parsed as if it was an integer number. If the parsing fails, NULL
will be returned. A floating point number will be cast into an integer.
Syntax: TOINT( expression )
Arguments:
- expression: An expression that returns anything
Query.
RETURN toInt("42"), toInt("no a number")
Result
toInt("42") | toInt("no a number") |
---|---|
1 row | |
|
|
Try this query live. create (_0 {`age`:54, `eyes`:"brown", `name`:"Daniel"}) create (_1:`Spouse` {`age`:41, `array`:["one", "two", "three"], `eyes`:"blue", `name`:"Eskil"}) create (_2:`foo`:`bar` {`age`:38, `eyes`:"brown", `name`:"Alice"}) create (_3 {`age`:25, `eyes`:"blue", `name`:"Bob"}) create (_4 {`age`:53, `eyes`:"green", `name`:"Charlie"}) create _2-[:`KNOWS`]->_3 create _2-[:`KNOWS`]->_4 create _3-[:`KNOWS`]->_0 create _3-[:`MARRIED`]->_1 create _4-[:`KNOWS`]->_0 return toInt("42"), toInt("no a number")
TOFLOAT
TOFLOAT
converts the argument to a float. A string is parsed as if it was an floating point number. If the parsing fails, NULL
will be returned. An integer will be cast to a floating point number.
Syntax: TOFLOAT( expression )
Arguments:
- expression: An expression that returns anything
Query.
RETURN toFloat("11.5"), toFloat("no a number")
Result
toFloat("11.5") | toFloat("no a number") |
---|---|
1 row | |
|
|
Try this query live. create (_0 {`age`:54, `eyes`:"brown", `name`:"Daniel"}) create (_1:`Spouse` {`age`:41, `array`:["one", "two", "three"], `eyes`:"blue", `name`:"Eskil"}) create (_2:`foo`:`bar` {`age`:38, `eyes`:"brown", `name`:"Alice"}) create (_3 {`age`:25, `eyes`:"blue", `name`:"Bob"}) create (_4 {`age`:53, `eyes`:"green", `name`:"Charlie"}) create _2-[:`KNOWS`]->_3 create _2-[:`KNOWS`]->_4 create _3-[:`KNOWS`]->_0 create _3-[:`MARRIED`]->_1 create _4-[:`KNOWS`]->_0 return toFloat("11.5"), toFloat("no a number")