関数(パイプライン)リファレンス

次の関数は、パイプラインの式演算子およびデシジョン演算子とともに使用されます。

算術関数
関数説明
ABS(numeric)numeric値の絶対乗を返します。ABS(-1)
CEIL(numeric)numeric値を超えない最小の整数を返しますCEIL(-1,2)
EXP(numeric) eをnumericの累乗で返します。定数eは、自然対数の底である2.71828182845904に等しくなります。 EXP(2)
FLOOR(numeric)numeric値を超えない最大の整数を返します。FLOOR(-1,2)
MOD(numeric1, numeric2)numeric1numeric2で除算した後の剰余を返します。MOD(8,2)
POW(numeric1, numeric2)numeric1numeric2で累乗します。POW(2,3)
ROUND(numeric1, numeric2)numeric1を小数点以下numeric2桁に丸めて返します。ROUND(2.5,0)
TRUNC(numeric1, numeric2)numeric1を小数点以下numeric2桁に切り捨てて返します。TRUNC(2.5,0)
TO_NUMBER(expr[, format, locale])指定されたformatおよびlocale(オプション)に基づいて、exprを数値に変換します。デフォルトのロケールはen-USです。サポートされる言語タグ

サポートされるフォーマット・パターン:

  • 0: 数字
  • #: 数字。ゼロは存在しないことを示します
  • .: 小数点セパレータのプレースホルダ
  • ,: グループ化セパレータのプレースホルダ
  • E: 指数フォーマットの仮数と指数を区切ります
  • -: デフォルトの否定接頭辞
  • ¤: 通貨シンボルで置換される通貨記号。二重の場合、国際通貨記号で置換されます。パターン内に存在する場合は、小数点セパレータのかわりに通貨小数点セパレータが使用されます。

TO_NUMBER('5467.12')5467.12を返します

TO_NUMBER('-USD45,677.7', '¤¤##,###.#', 'en-US')-45677.7を返します

FORMAT_NUMBER(value, format) 指定された値の書式設定された表現を返します。

FORMAT_NUMBER(123.4567, '^-09.3f')0123.4570を返します

条件付き関数
関数説明
NULLIF(value, value)2つの値が等しい場合はnullを返し、それ以外の場合は最初の値を返します。NULLIF('ABC','XYZ')ABCを返します
ISNULL(value) null値をチェックします。 ISNULL('ABC')falseを返します
ISNOTNULL(value) nullでない値をチェックします。 ISNOTNULL('ABC')trueを返します
日付と時間関数
関数説明
CURRENT_DATE現在の日付を返します。CURRENT_DATEは、本日の日付を返します
CURRENT_TIMESTAMPセッション・タイム・ゾーンでのタイム・ゾーン付きの現在の日付と時刻を返します。CURRENT_TIMESTAMPは、本日の日付と現在時刻を返します
DATE_ADD(date, number)指定したdateからnumber日後の日付を返します。DATE_ADD('2017-07-30', 1)2017-07-31を返します
DATE_SUB(date, number) 指定したdatenumber日前の日付を戻します。 DATE_SUB('2017-07-30', 1)2017-07-29を返します
DATE_FORMAT(expr, format[, locale])指定されたformatおよびlocale(オプション)に基づいて、日付のexprをフォーマットします。デフォルトのロケールはen-USです。サポートされる言語タグ

パイプライン式では、formatstrftimeフォーマット・コードを使用する必要があります。

DATE_FORMAT(2020-10-13, '%d-%m-%Y')は、'13-10-2020'を返します。

最初の引数は、2020年10月13日を表すDateオブジェクトです。

DATE_FORMAT(2018-junio-17, '%d/%B/%y', 'es-ES')'17/junio/18'を返します

WEEKOFYEAR(date) 日付が年内の何番目の週かを返します。

WEEKOFYEAR('2022-07-28')30を返します

WEEKOFYEAR('2022-07-28 13:24:30')30を返します

TO_DATE(string, format_string[, localeStr])format_string式を含む文字列式を日付に解析します。ロケールはオプションです。デフォルトはen-USです。サポートされる言語タグ

パイプライン式では、format_stringstrftimeフォーマット・コードを使用する必要があります。

フォーマット・コードの例:

'%a %d-%m-%Y' Tue 10-12-2019を返します

'%a %d/%m/%Y' Tue 10/12/2019を返します

'%a %d/%m/%y'Tue 10/12/19を返します

TO_DATE('12 June 2018', '%m/%d/%Y') 06/12/2018を返します

TO_TIMESTAMP(expr, format_string[, localeStr])指定されたformat_stringおよびlocaleStr(オプション)に基づいて、VARCHARのexprをTIMESTAMPの値に変換します。

パイプライン式では、format_stringstrftimeフォーマット・コードを使用する必要があります。

TO_TIMESTAMP('2020-10-10 11:10:10', '%A %d-%m-%Y, %H:%M:%S')は、Saturday 10-10-2020, 11:10:10を表すTIMESTAMPオブジェクトを返します
MONTHS_BETWEEN(start_date_expr, end_date_expr)

start_date_exprend_date_exprの間の月数を返します。start_date_exprend_date_exprには、yyyy-MM-ddまたはyyyy-MM-dd HH:mm:ss.SSSのようなフォーマットの日付、タイムスタンプまたは文字列を指定できます

整数が返されるのは、両方の日付の日の部分が同じ場合、または両方が月の最終日の場合です。それ以外の場合は、1か月を31日として差が計算されます。

MONTHS_BETWEEN('2022-01-01', '2022-01-31')は1を返します

MONTHS_BETWEEN('2022-07-28', '2020-07-25')は24を返します

MONTHS_BETWEEN('2022-07-28 13:24:30', '2020-07-25 13:24:30')は24を返します

階層関数
関数説明
TO_MAP(string,column[,string,column]*)Map型の新しい列を作成します。入力列は、キーと値のペアとしてグループ化する必要があります。入力キー列をNULLにすることはできません。すべて同じデータ型である必要があります。入力値列はすべて同じデータ型である必要があります。

TO_MAP('Ename',Expression_1.attribute1)は、Map型の列{"ENAME" -> 100}を返します

TO_MAP('block', EXPRESSION_1.MYSOURCE.address.block, 'unit', EXPRESSION_1.MYSOURCE.address.unit)は、Map型の列{"block" -> 1,"unit" -> 1}を返します

TO_STRUCT(string,column[,string,column]*)Struct型の新しい列を作成します。入力列は、キーと値のペアとしてグループ化する必要があります。

TO_STRUCT('Ename',Expression_1.attribute1){100}を返します

TO_STRUCT('Id',Expression_1.attribute1, 'Name', Expression_1.attribute2){100, "John"}を返します

TO_ARRAY(column[,column]*)Array型の新しい列を作成します。入力列はすべて同じデータ型である必要があります。

TO_Array(Expression_1.attribute1)[100]を返します

TO_ARRAY(EXPRESSION_1.attribute2,EXPRESSION_1.attribute3)["John","Friend"]を返します

演算子(比較)関数
関数説明
AND論理AND演算子。両方のオペランドがtrueの場合はtrueを返し、それ以外の場合はfalseを返します。(x = 10 AND y = 20)は、xが10でyが20の場合、trueを返します。いずれか一方がtrueでない場合は、falseを返します
OR論理OR演算子。いずれかのオペランドがtrueであるか、両方ともtrueである場合はtrueを返し、それ以外の場合はfalseを返します。(x = 10 OR y = 20)は、xが10ではなく、かつyが20でない場合、falseを返します。いずれか一方がtrueの場合は、trueを返します
NOT論理NOT演算子。
IN 式が値リストと一致するかどうかをテストします。 FILTER_2.ORDERS.ORDER_ID IN (1003, 1007)
=等価かどうかをテストします。expr1がexpr2と等しい場合はtrueを返し、それ以外の場合はfalseを返します。x = 10は、xの値が10の場合はtrueを返し、それ以外の場合はfalseを返します
>式の大なりをテストします。expr1がexpr2より大きい場合は、trueを返します。x > 10は、xの値が10より大きい場合はtrueを返し、それ以外の場合はfalseを返します
>=式の大なりイコールをテストします。expr1がexpr2以上の場合は、trueを返します。x > =10は、xの値が10以上の場合はtrueを返し、それ以外の場合はfalseを返します
<式の小なりをテストします。expr1がexpr2より小さい場合は、trueを返します。x < 10は、xの値が10より小さい場合はtrueを返し、それ以外の場合はfalseを返します
<=式の小なりイコールをテストします。expr1がexpr2以下の場合は、trueを返します。x <= 10は、xの値が10より小さい場合はtrueを返し、それ以外の場合はfalseを返します
文字列関数
関数説明
CAST(value AS type)指定されたタイプの指定された値を返します。CAST("10" AS INT)10を返します
CONCAT(string, string)文字列または列を結合した値を返しますCONCAT('Oracle','SQL')OracleSQLを返します
LOWER(string)すべての文字を小文字に変更して文字列を返します。LOWER('ORACLE')oracleを返します
LENGTH(string)文字列の文字長またはバイナリ・データのバイト数を返します。文字列の長さには末尾のスペースも含まれます。LENGTH('Oracle')6を返します
LTRIM(string)先頭のスペースを左から除去して文字列を返します。LTRIM(' Oracle')
REGEXP_EXTRACT(string, regexp[, RegexGroupIdx])正規表現に一致するグループを抽出します。REGEXP_EXTRACT('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1)22を返します
REGEXP_SUBSTR(string, regexp[, RegexGroupIdx]) 入力文字列から正規表現パターンに一致する文字列を検索して抽出します。オプションのキャプチャ・グループ索引が指定されている場合、この関数は特定のグループを抽出します。

REGEXP_SUBSTR('https://www.oracle.com/products', 'https://([[:alnum:]]+\.?){3,4}/?')https://www.oracle.comを返します

REGEXP_SUBSTR('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1)22を返します
REGEXP_REPLACE(string, regexp, rep]) 正規表現と一致する文字列のすべての部分文字列をrepに置き換えます。
REPLACE(string, search, replacement)出現するすべてのsearchreplacementに置換します。

文字列にsearchが見つからない場合、stringがそのまま返されます。

replacementが指定されていない場合、または空の文字列の場合、stringから削除されるsearchは何にも置換されません。

REPLACE('input string value', 'input', 'output')は"output string value"を返します。例:

REPLACE('ABCabc', 'abc', 'DEF')ABCDEFを返します

RTRIM(string)先頭のスペースを右から除去して文字列を返します。RTRIM('Oracle ')
SUBSTRING(string, start_position[, substring_length])指定されたstart_positionからsubstring_lengthの長さで始まる部分文字列をstringから返します。

オフセット位置の番号付けは0で始まります。

SUBSTRING('Hello Oracle', 6, 6) 戻り値 Oracle
TO_CHAR(expr[, format_string])フォーマットに基づいて日付を文字列に変換します。数値を文字列に変換します。フォーマットは必要ありません。

パイプライン式では、format_stringstrftimeフォーマット・コードを使用する必要があります。

TO_CHAR(123)123を返します

TO_CHAR(Date'2020-10-30', '%m/%d/%Y')は、10/30/2020を返します。

最初の引数は、2020年10月30日を表すDateオブジェクトです。

TRIM(string) 先頭の空白文字が削除された文字列を返します。 TRIM(' ORACLE ') ORACLEを返します
UPPER(string)すべての文字を大文字に変更して文字列を返します。UPPER('oracle')ORACLEを返します
json_path(json_string, json_filter_path) JSON構造から値を抽出します。 CAST(json_path(SYS.RESPONSE_PAYLOAD, '$.key') AS String)は、RESPONSE_PAYLOADのフィールド"key"の文字列値を返します