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 boolean2 | boolean1がTRUEかboolean2がTRUEかどうか |
boolean1 AND boolean2 | boolean1とboolean2が両方ともTRUEかどうか |
NOT boolean | booleanがTRUEでないかどうか。booleanがUNKNOWNの場合はUNKNOWNを返す |
算術式
演算子構文 | 説明 |
---|---|
numeric1 + numeric2 | numeric1とnumeric2の和を返す |
numeric1 - numeric2 | numeric1からnumeric2を引いた値を返す |
numeric1 * numeric2 | numeric1にnumeric2を掛けた値を返す |
numeric1 / numeric2 | numeric1を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 || string | 2つの文字列を連結する |
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を返す。 |