すべてのプロダクト
Search
ドキュメントセンター

PolarDB:スカラー関数

最終更新日:Jan 23, 2025

スカラー関数は、単一の入力値に対して演算し、単一の出力値を返す関数です。 これらの関数は、コンピューティングおよび変換タスクのデータ処理および分析に使用されます。

id

id() は、頂点または辺のIDを返します。

構文

id(expression)

戻り値

agtype整数。

Parameters

パラメーター

説明

expression

頂点またはエッジを返す式。

SELECT *
FROM cypher('graph_name', $$
    MATCH (a)
    RETURN id(a)
$$) as (id agtype);

サンプル結果:

   id        
--------
 0
 1
 2
 3
(4 rows)

start_id

start_id() は、エッジの開始頂点である頂点のIDを返します。

構文

start_id(expression)

戻り値

agtype整数。

Parameters

パラメーター

説明

expression

エッジを返す式。

SELECT *
FROM cypher('graph_name', $$
    MATCH ()-[e]->()
    RETURN start_id(e)
$$) as (start_id agtype);

サンプル結果:

   id        
--------
 0
 1
 2
 3
(4 rows)

end_id

end_id() は、エッジの終了頂点である頂点のIDを返します。

構文

end_id(expression)

戻り値

agtype整数。

Parameters

パラメーター

説明

expression

エッジを返す式。

SELECT *
FROM cypher('graph_name', $$
    MATCH ()-[e]->()
    RETURN end_id(e)
$$) as (end_id agtype);

サンプル結果:

   id        
--------
 4
 5
 6
 7
(4 rows)

type

type() は、エッジ型の文字列表現を返します。

構文

type(edge)

戻り値

agtype文字列。

Parameters

パラメーター

説明

edge

エッジを評価する式。

SELECT *
FROM cypher('graph_name', $$
    MATCH ()-[e]->()
    RETURN type(e)
$$) as (type agtype);

サンプル結果:

    type        
-----------
 "KNOWS"
 "KNOWS"
(2 rows)

properties

properties() は、頂点または辺のすべてのプロパティを含むagtypeマップを返します。 引数がすでにマップの場合は、変更されずに返されます。

構文

properties(expression)

戻り値

agtypeマップ。

Parameters

パラメーター

説明

expression

頂点、エッジ、またはagtypeマップを返す式。

使用上の注意

properties(null)nullを返します。

SELECT *
FROM cypher('graph_name', $$
    CREATE (p:Person {name: 'Stefan', city: 'Berlin'})
    RETURN properties(p)
$$) as (properties agtype);

サンプル結果:

               properties                 
--------------------------------------
 {"city": "Berlin", "name": "Stefan"}
(1 row)

ヘッド

head() は、agtypeリストの最初の要素を返します。

構文

head(list)

戻り値

返される値の型は、リストの最初の要素の型です。

Parameters

パラメーター

説明

list

リストを返す式。

使用上の注意

  • head(null)nullを返します。

  • リストの最初の要素がnullの場合、head(list)nullを返します。

SELECT *
FROM cypher('graph_name', $$
   MATCH (a)
   WHERE a.name = 'Eskil'
   RETURN a.array, head(a.array)
$$) as (lst agtype, lst_head agtype);

サンプル結果:

 lst                     | lst_head 
-------------------------+----------
 ["one","two","three"]   | "one"	
(1 row)

最後

last() は、agtypeリストの最後の要素を返します。

構文

last(list)

戻り値

返される値の型は、リストの最後の要素の型です。

Parameters

パラメーター

説明

list

リストを返す式。

使用上の注意

  • last(null)nullを返します。

  • リストの最後の要素がnullの場合、last(list)nullを返します。

SELECT *
FROM cypher('graph_name', $$
MATCH (a)
WHERE a.name = 'Eskil'
RETURN a.array, last(a.array)
$$) as (lst agtype, lst_tail agtype);

サンプル結果:

 lst                     | lst_tail 
-------------------------+----------
 ["one","two","three"]   | "three"	
(1 row)

length

length() はパスの長さを返します。

構文

length(path)

戻り値

agtype整数。

Parameters

パラメーター

説明

パス

パスを返す式。

使用上の注意

length(null)nullを返します。

SELECT *
FROM cypher('graph_name', $$
   MATCH p = (a)-[]->(b)-[]->(c)
   WHERE a.name = 'Alice'
   RETURN length(p)
$$) as (length_of_path agtype);

パスpの長さを返します。

 length_of_path 
----------------
 2
 2
 2
(3 rows)

size

size() はリストの長さを返します。

構文

size(list)

戻り値

agtype整数。

Parameters

パラメーター

説明

list

リストを返す式。

使用上の注意

size(null)nullを返します。

SELECT *
FROM cypher('graph_name', $$
    RETURN size(['Alice', 'Bob'])
$$) as (size_of_list agtype);

パスpの長さを返します。

 size_of_list 
--------------
 2
(1 row)

startNode

startNode() は、エッジの開始ノードを返します。

構文

startNode(edge)

戻り値

頂点。

Parameters

パラメーター

説明

edge

エッジを返す式。

使用上の注意

startNode(null)nullを返します。

SELECT *
FROM cypher('graph_name', $$
    MATCH (x:Developer)-[r]-()
    RETURN startNode(r)
$$) as (v agtype);

サンプル結果:

                     v 
--------------------------------------------
 Node[0]{name:"Alice",age:38,eyes:"brown"}
 Node[0]{name:"Alice",age:38,eyes:"brown"}
(2 rows)

endNode

endNode() は、エッジの終了ノードを返します。

構文

endNode(edge)

戻り値

頂点。

Parameters

パラメーター

説明

edge

エッジを返す式。

使用上の注意

endNode(null)nullを返します。

SELECT *
FROM cypher('graph_name', $$
    MATCH (x:Developer)-[r]-()
    RETURN endNode(r)
$$) as (v agtype);

サンプル結果:

                     v 
--------------------------------------------
 Node[2]{name:"Charlie",age:53,eyes:"green"}
 Node[1]{name:"Bob",age:25,eyes:"blue"}
(2 rows)

timestamp

timestamp() は、現在の時刻とUTC 1970 1月1日の深夜との差をミリ秒単位で返します。

構文

timestamp()

戻り値

agtype整数。

使用上の注意

timestamp() は、実行時間の長いクエリでも、1つのクエリ全体で同じ値を返します。

SELECT *
FROM cypher('graph_name', $$
    RETURN timestamp()
$$) as (t agtype);

サンプル結果:

       t       
---------------
 1613496720760
(1 row)

toBoolean

toBoolean() は、文字列値をブール値に変換します。

構文

toBoolean(expression)

戻り値

agtypeブール値。

Parameters

パラメーター

説明

expression

ブール値または文字列値を返す式。

使用上の注意

  • toBoolean(null)nullを返します。

  • 式がブール値の場合は、変更されずに返されます。

  • 解析が失敗した場合、nullが返されます。

SELECT *
FROM cypher('graph_name', $$
    RETURN toBoolean('TRUE'), toBoolean('not a boolean')
$$) as (a_bool agtype, not_a_bool agtype);

サンプル結果:

 a_bool | not_a_bool 
--------+------------
 true   | 
(1 row)

toFloat

toFloat() は、整数または文字列の値を浮動小数点数に変換します。

構文

toFloat(expression)

戻り値

浮動小数点数。

Parameters

パラメーター

説明

expression

agtype番号またはagtype文字列値を返す式。

使用上の注意

  • toFloat(null)nullを返します。

  • 式が浮動小数点数の場合は、変更されずに返されます。

  • 解析が失敗した場合、nullが返されます。

SELECT *
FROM cypher('graph_name', $$
    RETURN toFloat('11.5'), toFloat('not a number')
$$) as (a_float agtype, not_a_float agtype);

サンプル結果:

 a_float | not_a_float 
---------+-------------
 11.5    | 
(1 row)

toInteger

toInteger() は、浮動小数点数または文字列値を整数値に変換します。

構文

toInteger(expression)

戻り値

agtype整数。

Parameters

パラメーター

説明

expression

agtype番号またはagtype文字列値を返す式。

使用上の注意

  • toInteger(null)nullを返します。

  • 式が整数値の場合は、変更されずに返されます。

  • 解析が失敗した場合、nullが返されます。

SELECT *
FROM cypher('graph_name', $$
     RETURN toInteger('42'), toInteger('not a number')
$$) as (an_integer agtype, not_an_integer agtype);

サンプル結果:

 an_integer | not_an_integer 
------------+----------------
 42         | 
(1 row)

合体

coalesce() は、指定された式のリストの最初のnull以外の値を返します。

構文

coalesce(expression [, expression]*)

戻り値

返される値の型は、最初のnull以外の式の型です。

Parameters

パラメーター

説明

expression

nullを返す可能性のある式。

使用上の注意

すべてのパラメーターがnullの場合は、nullが返されます。

SELECT *
FROM cypher('graph_name', $$
MATCH (a)
WHERE a.name = 'Alice'
RETURN coalesce(a.hairColor, a.eyes), a.hair_color, a.eyes
$$) as (color agtype, hair_color agtype, eyes agtype);

サンプル結果:

 color   | hair_color | eyes 
---------+------------+---------
 "brown" |            |	"Brown"
(1 row)