Beam Calcite SQL スカラー関数

このページでは、Beam Calcite SQLでサポートされているApache Calcite関数を説明します。

比較関数と演算子

演算子構文説明
value1 = value2等しい
value1 <> value2等しくない
value1 > value2より大きい
value1 >= value2以上
value1 < value2より小さい
value1 <= value2以下
value IS NULL値がnullかどうか
value IS NOT NULL値がnullでないかどうか

論理関数と演算子

演算子構文説明
boolean1 OR boolean2boolean1がTRUEかboolean2がTRUEかどうか
boolean1 AND boolean2boolean1とboolean2が両方ともTRUEかどうか
NOT booleanbooleanがTRUEでないかどうか。booleanがUNKNOWNの場合はUNKNOWNを返す

算術式

演算子構文説明
numeric1 + numeric2numeric1とnumeric2の和を返す
numeric1 - numeric2numeric1からnumeric2を引いた値を返す
numeric1 * numeric2numeric1にnumeric2を掛けた値を返す
numeric1 / numeric2numeric1をnumeric2で割った値を返す
MOD(numeric, numeric)numeric1をnumeric2で割った余りを返す。numeric1が負の場合のみ、結果は負になる

数学関数

演算子構文説明
ABS(numeric)numericの絶対値を返す
SQRT(numeric)numericの平方根を返す
LN(numeric)numericの自然対数(底e)を返す
LOG10(numeric)numericの底10の対数を返す
EXP(numeric)eをnumericのべき乗した値を返す
ACOS(numeric)numericのアークコサインを返す
ASIN(numeric)numericのアークサインを返す
ATAN(numeric)numericのアークタンジェントを返す
COT(numeric)numericのコタンジェントを返す
DEGREES(numeric)numericをラジアンから度に変換する
RADIANS(numeric)numericを度からラジアンに変換する
SIGN(numeric)numericの符号を返す
SIN(numeric)numericのサインを返す
TAN(numeric)numericのタンジェントを返す
ROUND(numeric1, numeric2)numeric1を小数点以下numeric2桁に丸める

日付関数

演算子構文説明
LOCALTIMEセッションタイムゾーンにおける現在の日時をTIMEデータ型の値として返す
LOCALTIME(precision)セッションタイムゾーンにおける現在の日時をTIMEデータ型の値として返し、precision桁の精度を持つ
LOCALTIMESTAMPセッションタイムゾーンにおける現在の日時をTIMESTAMPデータ型の値として返す
LOCALTIMESTAMP(precision)セッションタイムゾーンにおける現在の日時をTIMESTAMPデータ型の値として返し、precision桁の精度を持つ
CURRENT_TIMEセッションタイムゾーンにおける現在時刻をTIMESTAMP WITH TIME ZONEデータ型の値として返す
CURRENT_DATEセッションタイムゾーンにおける現在の日付をDATEデータ型の値として返す
CURRENT_TIMESTAMPセッションタイムゾーンにおける現在の日時をTIMESTAMP WITH TIME ZONEデータ型の値として返す
EXTRACT(timeUnit FROM datetime)datetime値式から指定されたdatetimeフィールドの値を抽出して返す
FLOOR(datetime TO timeUnit)datetimeをtimeUnitに切り下げる
CEIL(datetime TO timeUnit)datetimeをtimeUnitに切り上げる
YEAR(date)EXTRACT(YEAR FROM date)と同等。整数を返す。
QUARTER(date)EXTRACT(QUARTER FROM date)と同等。1から4の整数を返す。
MONTH(date)EXTRACT(MONTH FROM date)と同等。1から12の整数を返す。
WEEK(date)EXTRACT(WEEK FROM date)と同等。1から53の整数を返す。
DAYOFYEAR(date)EXTRACT(DOY FROM date)と同等。1から366の整数を返す。
DAYOFMONTH(date)EXTRACT(DAY FROM date)と同等。1から31の整数を返す。
DAYOFWEEK(date)EXTRACT(DOW FROM date)と同等。1から7の整数を返す。
HOUR(date)EXTRACT(HOUR FROM date)と同等。0から23の整数を返す。
MINUTE(date)EXTRACT(MINUTE FROM date)と同等。0から59の整数を返す。
SECOND(date)EXTRACT(SECOND FROM date)と同等。0から59の整数を返す。

文字列関数

演算子構文説明
string || string2つの文字列を連結する
CHAR_LENGTH(string)文字列の文字数を返す
CHARACTER_LENGTH(string)CHAR_LENGTH(string)と同じ
UPPER(string)大文字に変換された文字列を返す
LOWER(string)小文字に変換された文字列を返す
POSITION(string1 IN string2)string2におけるstring1の最初の出現位置を返す
POSITION(string1 IN string2 FROM integer)指定された位置から始まるstring2におけるstring1の最初の出現位置を返す(標準SQLではない)
TRIM( { BOTH | LEADING | TRAILING } string1 FROM string2)string1の文字のみを含む最長の文字列をstring2の先頭/末尾/両端から削除する
OVERLAY(string1 PLACING string2 FROM integer [ FOR integer2 ])string1の部分文字列をstring2で置き換える
SUBSTRING(string FROM integer)指定された位置から始まる文字列の部分文字列を返す
SUBSTRING(string FROM integer FOR integer)指定された位置から指定された長さの部分文字列を返す
INITCAP(string)各単語の最初の文字を大文字、残りを小文字に変換した文字列を返す。単語は、非英数字文字で区切られた英数字文字のシーケンスである。

条件関数

演算子構文説明
CASE value
WHEN value1 [, value11 ]* THEN result1
[ WHEN valueN [, valueN1 ]* THEN resultN ]*
[ ELSE resultZ ]
END
単純なCASE
CASE
WHEN condition1 THEN result1
[ WHEN conditionN THEN resultN ]*
[ ELSE resultZ ]
END
検索CASE
NULLIF(value, value)値が同じ場合はNULLを返す。例えば、NULLIF(5, 5)はNULLを返し、NULLIF(5, 0)は5を返す。
COALESCE(value, value [, value ]*)最初の値がnullの場合に値を提供する。例えば、COALESCE(NULL, 5)は5を返す。