関数(データ・フロー)リファレンス
次の関数は、式を作成できるように、データ・フローの演算子とともに使用されます。
関数 | 説明 | 例 |
---|---|---|
COUNT(value[, value]*) | 指定された1つ以上の式がすべてnullでない行の数を返します。 | COUNT(expr1) |
COUNT(*) | 取得された行の合計数(nullのある行を含む)を返します。 | COUNT(*) |
MAX(value) | 引数の最大値を返します。 | MAX(expr) |
MIN(value) | 引数の最小値を返します。 | MIN(expr) |
SUM(numeric) | グループの値から計算された合計を返します。 | SUM(expr1) |
AVG(numeric) | 式の数値の平均を返します。 | AVG(AGGREGATE_1.src1.attribute1) |
LISTAGG(column[, delimiter]) WITHIN GROUP (order_by_clause) | order句に基づいてグループごとに、指定したデリミタで入力列の値を連結します。 columnには、結果で連結する値が含まれます。 delimiterは、結果でcolumn値を分離します。delimiterを指定しないと、空白文字が使用されます。 order_by_clauseは、連結した値を返す順序を決定します。 この関数はアグリゲータとしてのみ使用できます。また、グループ化の有無に関係なく使用できます。グループ化せずに使用すると、結果が単一行になります。グループ化して使用すると、各グループに1行ずつ返されます。 |
例1: グループ化なし
例2:
|
関数 | 説明 | 例 |
---|---|---|
FIRST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ] ) |
ウィンドウ・フレームの最初の行である行で評価された値を返します。 | FIRST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) は、現在行とその行の後の1行の間にある行を計算し、BANK_ID でパーティション化し、BANK_NAME で昇順にしたときの、ウィンドウ内のBANK_ID の最初の値を返します。 |
LAG(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) |
パーティション内の現在行より前の指定のオフセットにある行で評価された値を返します。そのような行がない場合、デフォルト値が返されます。現在の行に基づいて、オフセットとデフォルトの両方が評価されます。省略した場合、オフセットは1にデフォルト設定され、デフォルトはNULLになります。 | LAG(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME DESC) は、BANK_ID でパーティション化し、BANK_NAME の降順にしたときの、現在行より2行前のBANK_ID の値を返します。そのような値がない場合は、hello が返されます。 |
LAST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ]) |
ウィンドウ・フレームの最後の行である行で評価された値を返します。 | LAST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) は、現在行とその行の後の1行の間にある行を計算し、BANK_ID でパーティション化し、BANK_NAME で昇順にしたときの、ウィンドウ内のBANK_ID の最後の値を返します。 |
LEAD(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) |
パーティション内の現在行より後の特定のオフセットにある行で評価された値を返します。そのような行がない場合、デフォルト値が返されます。現在の行に基づいて、オフセットとデフォルトの両方が評価されます。省略した場合、オフセットは1にデフォルト設定され、デフォルトはNULLになります。 | LEAD(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) は、BANK_ID でパーティション化し、BANK_NAME の昇順にしたときの、現在行より2行後のBANK_ID の値を返します。そのような値がない場合は、hello が返されます。 |
RANK() OVER([ partition_clause ] order_by_clause) |
ギャップを含む現在行のランクを返します(1からカウント)。 | RANK() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) は、BANK_ID のパーティション・グループ内の各行のランクをBANK_NAME の昇順で返します。 |
ROW_NUMBER() OVER([ partition_clause ] order_by_clause) |
パーティション内の現在行の一意の番号を返します(1からカウント)。 | ROW_NUMBER() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) は、BANK_ID のパーティション・グループ内の各行の一意の行番号をBANK_NAME の昇順で返します。 |
関数 | 説明 | 例 |
---|---|---|
ABS(numeric) | numeric 値の絶対乗を返します。 | ABS(-1) |
CEIL(numeric) | numeric 値を超えない最小の整数を返します | CEIL(-1,2) |
FLOOR(numeric) | numeric 値を超えない最大の整数を返します。 | FLOOR(-1,2) |
MOD(numeric1, numeric2) | numeric1 をnumeric2 で除算した後の剰余を返します。 | MOD(8,2) |
POWER(numeric1, numeric2) | numeric1 をnumeric2 で累乗します。 | POWER(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 です。サポートされる言語タグ。サポートされるフォーマット・パターン:
|
|
式演算子のみが配列関数をサポートします。
関数 | 説明 | 例 |
---|---|---|
ARRAY_POSITION(array(...), element) | 指定された配列内で指定された要素の最初の出現位置を返します。 位置はゼロベースではなく、1で始まります。 | ARRAY_POSITION(array(3, 2, 1, 4, 1), 1) は3 を返します |
REVERSE(array(...)) |
指定された要素の配列を逆の順序で返します。 | REVERSE(array(2, 1, 4, 3)) は[3,4,1,2] を返します |
ELEMENT_AT(array(...), index) |
指定されたインデックス位置で指定された配列の要素を返します。 索引はゼロベースではなく、1で始まります。
|
ELEMENT_AT(array(1, 2, 3), 2) は2 を返します |
関数 | 説明 | 例 |
---|---|---|
COALESCE(value, value [, value]*) | 存在する場合は最初のnullでない引数を返し、それ以外の場合はnullを返します。 | COALESCE(NULL, 1, NULL) は1 を返します |
NULLIF(value, value) | 2つの値が等しい場合はnullを返し、それ以外の場合は最初の値を返します。 | NULLIF('ABC','XYZ') はABC を返します |
関数 | 説明 | 例 |
---|---|---|
CURRENT_DATE |
現在の日付を返します。 | CURRENT_DATE は、2023-05-26 などの今日の日付を返します |
CURRENT_TIMESTAMP |
セッション・タイムゾーンに対する現在の日付と時刻を返します。 | CURRENT_TIMESTAMP は、今日の日付と現在の時刻(2023-05-26 12:34:56 など)を返します
|
DATE_ADD(date, number_of_days) |
指定したdate からnumber 日後の日付を返します。 |
DATE_ADD('2017-07-30', 1) は2017-07-31 を返します |
DATE_FORMAT(expr, format[, locale]) |
指定された サポートされる日付フォーマット・パターン:
|
|
DAYOFMONTH(date) |
特定の日(月間)を返します。 | DAYOFMONTH('2020-12-25') は25 を返します。 |
DAYOFWEEK(date) |
特定の日(週間)を返します。 | DAYOFWEEK('2020-12-25') は金曜日の6 を返します。米国では、日曜日は1、月曜日は2などとみなされます。 |
DAYOFYEAR(date) |
特定の日(年間)を返します。 | DAYOFYEAR('2020-12-25') は360 を返します |
WEEKOFYEAR(date) |
日付が年内の何番目の週かを返します。 |
|
HOUR(datetime) |
日時の時間の値を返します。 | HOUR('2020-12-25 15:10:30') は15 を返します |
LAST_DAY(date) |
月末の日付を返します。 | LAST_DAY('2020-12-25') は31 を返します |
MINUTE(datetime) |
日時の分の値を返します。 | HOUR('2020-12-25 15:10:30') は10 を返します |
MONTH(date) |
日付の月の値を返します。 | MONTH('2020-06-25') は6 を返します。 |
QUARTER(date) |
日付が属する四半期を返します。 | QUARTER('2020-12-25') は4 を返します。 |
SECOND(datetime) |
日時の秒の値を返します。 | SECOND('2020-12-25 15:10:30') は30 を返します |
TO_DATE(string, format_string[, localeStr]) |
format_string 式を含む文字列式を日付に解析します。ロケールはオプションです。デフォルトはen-US です。サポートされる言語タグ。パイプライン式では、
|
|
TO_TIMESTAMP(expr, format_string[, localeStr]) |
指定されたformat_string およびlocaleStr (オプション)に基づいて、VARCHARのexpr をTIMESTAMPの値に変換します。パイプライン式では、
|
TO_TIMESTAMP('2020-10-11 11:10:10', 'yyyy-MM-dd HH:mm:ss') は、11am 10:10 Oct 11th, 2020 を表すTIMESTAMPオブジェクトを返します |
WEEK(date) |
日付の週の値を返します。 |
WEEK('2020-06-25') は4 を返します |
YEAR(date) |
日付の年の値を返します。 | YEAR('2020-06-25') returns 2020 |
ADD_MONTHS(date_expr, number_months) |
指定した日付、タイムスタンプまたは文字列(yyyy-MM-dd またはyyyy-MM-dd HH:mm:ss.SSS のようなフォーマット)に指定した数の月を追加した日付を返します。 |
|
MONTHS_BETWEEN(start_date_expr, end_date_expr) |
整数が返されるのは、両方の日付の日の部分が同じ場合、または両方が月の最終日の場合です。それ以外の場合は、1か月を31日として差が計算されます。 |
|
FROM_UTC_TIMESTAMP(time_stamp, time_zone) |
日付、タイムスタンプまたは文字列をUTC時間として解釈し、その時間を指定したタイムゾーンのタイムスタンプに変換します。 文字列の場合は、 タイム・ゾーンのフォーマットは、リージョンベースのゾーンID(例: 'Asia/Seoul'のような'area/city')またはタイム・ゾーン・オフセット(例: UTC+02)のいずれかです。 |
FROM_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') は2017-07-14 03:40:00.0 を返します |
TO_UTC_TIMESTAMP(time_stamp, time_zone) |
指定したタイムゾーンの日付、タイムスタンプまたは文字列をUTCタイムスタンプに変換します。 文字列の場合は、 タイム・ゾーンのフォーマットは、リージョンベースのゾーンID(例: 'Asia/Seoul'のような'area/city')またはタイム・ゾーン・オフセット(例: UTC+02)のいずれかです。 |
TO_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') は2017-07-14 01:40:00.0 を返します
|
FROM_UNIXTIME(unix_time[, fmt]) |
指定したUnix時間すなわちエポックを、現在のシステム・タイム・ゾーンおよび指定したフォーマットで、その時点のタイムスタンプを表す文字列に変換します。 ノート: Unix時間とは、1970年1月1日00:00:00 UTCから経過した秒数です。
|
例のデフォルトのタイムゾーンはPSTです |
UNIX_TIMESTAMP([time_expr[, fmt]]) |
現在時刻または指定した時刻をUnixタイムスタンプ(秒単位)に変換します。
|
この例のデフォルトのタイムゾーンはPSTです |
INTERVAL 'year' YEAR[(year_precision)] |
期間を年単位で返します。 year_precisionはyearフィールドの桁数で、範囲は0から9です。year_precisionを省略した場合、デフォルトは2です(100年未満である必要があります)。 |
|
INTERVAL 'year month' YEAR[(year_precision)] TO MONTH |
期間を年と月の単位で返します。yearおよびmonthフィールドを使用して期間を格納するために使用します。 year_precisionはyearフィールドの桁数で、範囲は0から9です。year_precisionを省略した場合、デフォルトは2です(100年未満である必要があります)。 |
INTERVAL '100-5' YEAR(3) TO MONTH は100年と5か月の期間を返します。先頭の年の精度として3を指定する必要があります。 |
INTERVAL 'month' MONTH[(month_precision)] |
期間を月単位で返します。 month_precisionはmonthフィールドの桁数で、範囲は0から9です。month_precisionを省略した場合、デフォルトは2です(100年未満である必要があります)。 |
INTERVAL '200' MONTH(3) は200か月の期間を返します。月の精度として3を指定する必要があります。 |
INTERVAL 'day time' DAY[(day_precision)] TO SECOND[(fractional_seconds_precision)] |
日、時、分、秒で期間を返します。 day_precisionはdayフィールドの桁数で、範囲は0から9です。デフォルトは2です。 fractional_seconds_precisionは、timeフィールドの秒値の小数部の桁数であり、範囲は0から9です。 |
INTERVAL '11 10:09:08.555' DAY TO SECOND(3) は、11日10時間9分8秒555ミリ秒の期間を返します |
INTERVAL 'day time' DAY[(day_precision)] TO MINUTE[(minute_precision)] |
日、時、分で期間を返します。 day_precisionはdayフィールドの桁数で、範囲は0から9です。デフォルトは2です。 minute_precisionは「分」フィールドの桁数で、範囲は0から2です。デフォルトは2です。 |
INTERVAL '11 10:09' DAY TO MINUTE は、11日10時間9分の期間を返します |
INTERVAL 'day time' DAY[(day_precision)] TO HOUR[(hour_precision)] |
日数と時間数で期間を返します。 day_precisionはdayフィールドの桁数で、範囲は0から9です。デフォルトは2です。 hour_precisionはhourフィールドの桁数で、範囲は0から2です。デフォルトは2です。 |
INTERVAL '100 10' DAY(3) TO HOUR は、100日10時間の期間を返します |
INTERVAL 'day' DAY[(day_precision)] |
日数で期間を返します。 day_precisionはdayフィールドの桁数で、範囲は0から9です。デフォルトは2です。 |
INTERVAL '999' DAY(3) は999日の期間を返します |
INTERVAL 'time' HOUR[(hour_precision)] TO SECOND[(fractional_seconds_precision)] |
時、分、秒で期間を返します。 hour_precisionはhourフィールドの桁数で、範囲は0から2です。デフォルトは2です。 fractional_seconds_precisionは、timeフィールドの秒値の小数部の桁数であり、範囲は0から9です。 |
INTERVAL '09:08:07.6666666' HOUR TO SECOND(7) は、9時間8分7.6666666秒の期間を返します |
INTERVAL 'time' HOUR[(hour_precision)] TO MINUTE[(minute_precision)] |
時間と分数で期間を返します。 hour_precisionはhourフィールドの桁数で、範囲は0から2です。デフォルトは2です。 minute_precisionは「分」フィールドの桁数で、範囲は0から2です。デフォルトは2です。 |
INTERVAL '09:30' HOUR TO MINUTE は、9時間30分の期間を返します |
INTERVAL 'hour' HOUR[(hour_precision)] |
時間数で期間を返します。 hour_precisionはhourフィールドの桁数で、範囲は0から2です。デフォルトは2です。 |
INTERVAL '40' HOUR は40時間の期間を返します |
INTERVAL 'minute' MINUTE[(minute_precision)] |
分数で期間を返します。 minute_precisionは「分」フィールドの桁数で、範囲は0から2です。デフォルトは2です。 |
INTERVAL '15' MINUTE は15分間の期間を返します |
INTERVAL 'time' MINUTE[(minute_precision)] TO SECOND[(fractional_seconds_precision)] |
分数と秒数で期間を返します。 minute_precisionは「分」フィールドの桁数で、範囲は0から2です。デフォルトは2です。 fractional_seconds_precisionは、timeフィールドの秒値の小数部の桁数であり、範囲は0から9です。 |
INTERVAL '15:30' MINUTE TO SECOND は15分30秒の期間を返します |
INTERVAL 'second' SECOND[(fractional_seconds_precision)] |
秒数で期間を返します。 fractional_seconds_precisionは、secondフィールドの小数部の桁数で、範囲は0から9です。デフォルトは3です。 |
INTERVAL '15.678' SECOND は15.678秒の期間を返します |
関数 | 説明 | 例 |
---|---|---|
MD5(all data types) | データ型のMD5 チェックサムを計算し、文字列値を返します。 | MD5(column_name) |
SHA1(all data types) | データ型のSHA-1 ハッシュ値を計算し、文字列値を返します。 | SHA1(column_name) |
SHA2(all data types, bitLength) | データ型のSHA-2 ハッシュ値を計算し、文字列値を返します。bitLength は整数です。 | SHA2 (column_name, bitLength can be set to 0 (equivalent to 256), 256, 384, or 512) 。 |
ORA_HASH(expr, [max_bucket], [seed_value]) |
Oracleは、ハッシュ・ファンクションを |
|
関数 | 説明 | 例 |
---|---|---|
SCHEMA_OF_JSON(string) | JSON文字列を解析し、スキーマのDDLフォーマットを推測します。 |
|
FROM_JSON(column, string) | JSON文字列を含む列を解析し、指定スキーマを含む次のいずれかの型に解析します。
|
|
TO_JSON(column) | StructまたはStruct配列あるいはMapまたはMap配列の型を含む列をJSON文字列に変換します。 | TO_JSON(TO_STRUCT('s1', TO_ARRAY(1,2,3), 's2', TO_MAP('key', 'value'))) はJSON文字列{"s1":[1,2,3],"s2":{"key":"value"}} を返します |
TO_MAP(string,column[,string,column]*) | Map型の新しい列を作成します。入力列は、キーと値のペアとしてグループ化する必要があります。入力キー列をNULLにすることはできません。すべて同じデータ型である必要があります。入力値列はすべて同じデータ型である必要があります。 |
|
TO_STRUCT(string,column[,string,column]*) | Struct型の新しい列を作成します。入力列は、キーと値のペアとしてグループ化する必要があります。 |
|
TO_ARRAY(column[,column]*) | Array型の新しい列を作成します。入力列はすべて同じデータ型である必要があります。 |
|
式および階層データ型の作成をサポートするデータ・フロー演算子では、上位の関数を使用できます。
サポートされている演算子は次のとおりです:
-
集計
-
式
-
フィルタ
-
結合
-
検索
-
分割済
-
ピボット
関数 | 説明 | 例 |
---|---|---|
TRANSFORM(column, lambda_function) | 配列と無名関数を取得し、各要素に関数を適用して結果を出力配列に割り当てることによって、新しい配列を設定します。 | 整数[1, 2, 3] の入力配列の場合、TRANSFORM(array, x -> x + 1) は[2, 3, 4] の新しい配列を返します。 |
TRANSFORM_KEYS(column, lambda_function) | 2つの引数(キーと値)を持つマップと関数を取得し、キーがラムダ関数の結果のタイプを持ち、値が列マップ値のタイプを持つマップを返します。 | 整数キーおよび文字列値が{1 -> 'value1', 2 -> 'value2', 3 -> 'value3'} の入力マップの場合、TRANSFORM_KEYS(map, (k, v) -> k * 2 + 1) は{3 -> 'value1', 5 -> 'value2', 7 -> 'value3'} の新しいマップを返します。 |
TRANSFORM_VALUES(column, lambda_function) | 2つの引数(キーと値)を持つマップと関数を取得し、値がラムダ関数の結果のタイプを持ち、キーが列マップ・キーのタイプを持つマップを返します。 | 文字列キーおよび文字列値が{'a' -> 'value1', 'b' -> 'value2', 'c' -> 'value3'} の入力マップの場合、TRANSFORM_VALUES(map, (k, v) -> k || __ '' || v) は{'a' -> 'a_value1', 'b' -> 'b_value2', 'c' -> 'c_value3'} の新しいマップを返します。 |
ARRAY_SORT(array(...), lambda_function) |
式演算子のみが 配列を取得し、2つの引数を取る指定された関数に従ってソートします。 この関数は、最初のエレメントが2番目のエレメントより小さいか、等しいか、または大きいかに応じて-1、0、または1を返す必要があります。 関数を省略すると、配列は昇順にソートされます。 |
返される配列は次のとおりです。 [1,5,6] |
関数 | 説明 | 例 |
---|---|---|
CASE WHEN condition1 THEN result1 ELSE result2 END | 条件を満たす値を返します。 | CASE WHEN 1 > 0 THEN 'ABC' ELSE 'XYZ' END は、1> 0 の場合はABC を返し、それ以外の場合はXYZ を返します |
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演算子。 | |
LIKE | string1がstring2のパターンに一致するかどうかにかかわらず、文字列パターン・マッチングを実行します。 | |
= | 等価かどうかをテストします。expr1がexpr2と等しい場合はtrueを返し、それ以外の場合はfalseを返します。 | x = 10は、xの値が10の場合はtrueを返し、それ以外の場合はfalseを返します |
!= | 非等価かどうかをテストします。expr1がexpr2と等しくない場合はtrueを返し、それ以外の場合はfalseを返します。 | x != 10は、xの値が10の場合はfalseを返し、それ以外の場合はtrueを返します |
> | 式の大なりをテストします。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を返します |
|| | 2つの文字列を連結します。 | 'XYZ' || 'hello' は'XYZhello' を返します |
BETWEEN | 範囲を評価します。 | FILTER_1.BANK.BANK_ID BETWEEN 1003 AND 1007 |
IN | 式が値リストと一致するかどうかをテストします。 | FILTER_2.ORDERS.ORDER_ID IN (1003, 1007) |
関数 | 説明 | 例 |
---|---|---|
CAST(value AS type) | 指定されたタイプの指定された値を返します。 | CAST("10" AS INT) は10 を返します |
CONCAT(string, string) | 文字列または列を結合した値を返します | CONCAT('Oracle','SQL') はOracleSQL を返します |
CONCAT_WS(separator, expression1, expression2, expression3,...) |
指定したセパレータを使用して、文字列または列を結合した値を文字列または列間で返します。 セパレータは必須であり、文字列である必要があります。 セパレータの後に少なくとも1つの式を指定する必要があります。たとえば: |
CONCAT_WS('-', 'Hello', 'Oracle') はHello-Oracle を返します
関数の子が配列の場合、配列はフラット化されます。
|
INITCAP(string) | 各単語の最初の文字を大文字、残りの文字をすべて小文字にした文字列を、単語どうしを空白で区切って返します。 | INITCAP('oRACLE sql') はOracle Sql を返します |
INSTR(string, substring[start_position]) | string で最初に出現するsubstring の(1から始まる)索引を返します | INSTR('OracleSQL', 'SQL') は7 を返します |
LOWER(string) | すべての文字を小文字に変更して文字列を返します。 | LOWER('ORACLE') はoracle を返します |
LENGTH(string) | 文字列の文字長またはバイナリ・データのバイト数を返します。文字列の長さには末尾のスペースも含まれます。 | LENGTH('Oracle') は6 を返します |
LTRIM(string) | 先頭のスペースを左から除去して文字列を返します。 | LTRIM(' Oracle') |
NVL(expr1, epxr2) | nullでない引数を返します。 | NVL(EXPRESSION_3.CUSTOMERS_JSON.CONTINENT_ID, ROWID()) |
REGEXP_SUBSTR(string, regexp[, RegexGroupIdx]) | 入力文字列から正規表現パターンに一致する文字列を検索して抽出します。オプションのキャプチャ・グループ索引が指定されている場合、この関数は特定のグループを抽出します。 |
REGEXP_SUBSTR('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) は22 を返します |
REPLACE(string, search, replacement) | 出現するすべてのsearch をreplacement に置換します。文字列に
| REPLACE('ABCabc', 'abc', 'DEF') はABCDEF を返します |
RTRIM(string) | 先頭のスペースを右から除去して文字列を返します。 | RTRIM('Oracle ') |
SUBSTRING(string, position[, substring_length]) | 位置から始まる部分文字列を返します。 | SUBSTRING('Oracle SQL' FROM 2 FOR 3) はrac を返します |
数値の場合、TO_CHAR(expr) および日付の場合、TO_CHAR(expr, format[, locale]) | 数値および日付を文字列に変換します。数値の場合、書式は必要ありません。日付の場合は、「日時関数」で説明されているDATE_FORMAT と同じ形式を使用します。デフォルトのロケールはen-US です。「サポートされている言語タグ」を参照してください。パイプライン式では、
| 数値の例: 日付の例: |
UPPER(string) | すべての文字を大文字に変更して文字列を返します。 | UPPER('oracle') はORACLE を返します |
LPAD(str, len[, pad]) | 文字列の左側に指定した文字を特定の長さまで埋め込んで返します。pad文字を省略した場合のデフォルトは空白です。 | LPAD('ABC', 5, '*') は'**ABC' を返します |
RPAD(str, len[, pad]) | 文字列の右側に指定した文字を特定の長さまで埋め込んで返します。pad文字を省略した場合のデフォルトは空白です。 | RPAD('XYZ', 6, '+' ) returns 'XYZ+++' |
関数 | 説明 | 例 |
---|---|---|
NUMERIC_ID() | 各行に対して64ビットの数値の汎用一意識別子を生成します。 | NUMERIC_ID() は、たとえば3458761969522180096 および3458762008176885761 を返します |
ROWID() | 単調に増加する64ビット数を生成します。 | ROWID() は、たとえば、0 、1 、2 などを返します |
UUID() | 各行に対して128ビットの文字列の汎用一意識別子を生成します。 | UUID() は、たとえば20d45c2f-0d56-4356-8910-162f4f40fb6d を返します |
MONOTONICALLY_INCREASING_ID() |
単調に増加する一意の64ビット整数を生成します。連続した数字にはなりません。 | MONOTONICALLY_INCREASING_ID() は、たとえば、8589934592 や25769803776 を返します |