プレーン関数

プレーン関数は RAQL クエリの SELECT、OVER、WHERE、ORDER BY、GROUP BY、HAVING の句で使用できます。通常は、列の値のデータ型を変更する、値の一部を抽出する、値を何らかの方法で変換するのいずれかです。

プレーン関数は、1 行の値に個別に適用され、他の行の値にアクセスしません。単一値を返します。

ファンクション

説明

column_name(Any col_1, Any col_2, ..., Any col_n, Number index)

column_name(Any col)

col_1、col_2、... col_n の列から index の位置にある列の値を返します。index は整数値でない場合は丸められます。1 列のみ使用される場合は必要ありません。

column_type(Any col_1, Any col_2, ..., Any col_n, Number index)

column_type(Any col)

col_1、col_2、... col_n の列から index の位置にある列の名前を返します。index は整数値でない場合は丸められます。1 列のみ使用される場合は必要ありません。

custom_month(String col-or-expr)

EEE MMM dd HH:mm:ss z yyyy 形式の日付から月を抽出し、整数の月数を返します。これは英語の月名に基づきます。

dayOfWeek(Date col-or-expr)

dayOfWeek(String col-or-expr)

dayOfWeek(Long col-or-expr)

列または式の値を日付に変換し、曜日を整数 [1 - 7] として返します。この数値は、MashZone NextGen サーバーのロケール固有です。たとえば、day 1 は米国では日曜日ですが、フランスでは月曜日です。

epoc_sec_to_date

1970 年 1 月 1 日午前 0 時 (UTC) からの Java 表記時間 (ミリ秒) を内部的に表します。

  • 上記の参照時間から現在までが秒に変換されます (ミリ秒ではありません)。

  • 入力として string、double、long のいずれかを使用する 3 つの関数のバリアントがあります。

  • epoc_sec_to_date(‘123456‘)

  • epoc_sec_to_date(123456.00)

  • epoc_sec_to_date(123456)

extract_date(Date dt, String field)

dt パラメーターで識別される列または式の値から日付または時間の一部を抽出します。有効なフィールド値は以下のとおりです:

  • day

  • day-of-week

  • hour

  • minute

  • month

  • monthname

  • quarter

  • second

  • week

  • year

extract_hour(Date dt)

extract_hour(String dt)

extract_hour(Long dt)

dt パラメーターで識別される列または式の値で日付と時刻の時間の部分を抽出します。

extract_minute(Date dt)

extract_minute(String dt)

extract_minute(Long dt)

dt パラメーターで識別される列または式の値で日付と時刻の分の部分を抽出します。

extract_month(Date dt)

extract_month(String dt)

extract_month(Long dt)

dt パラメーターで識別される列または式の値で日付と時刻の月の部分を抽出します。

extract_second(Date dt)

extract_second(String dt)

extract_second(Long dt)

dt パラメーターで識別される列または式の値で日付と時刻の秒の部分を抽出します。

extract_week(Date dt)

extract_week(String dt)

extract_week(Long dt)

dt パラメーターで識別される列または式の値で日付と時刻の週の部分を抽出します。

extract_year(Date dt)

extract_year(String dt)

extract_year(Long dt)

dt パラメーターで識別される列または式の値で日付と時刻の年の部分を抽出します。

format_date(Date value)

format_date(Date value, String datePattern)

format_date(Date value, String datePattern, String timeZone)

日付値を、所定のターゲット形式とターゲット タイムゾーンの文字列表現に変換します。

  • datePattern は、short、medium、long、full、または Java の SimpleDateFormat が受け入れる任意の日付パターンになります。datePattern パラメーターのないバリアントは、以下のパターンを使用します: yyyy-MM-dd''T''HH:mm:ss.SSSZ

  • timeZone は、Java の TimeZone.getTimeZone メソッドが理解する任意のタイム ゾーンになります。詳細については、該当する Java 文書を参照してください。timeZone パラメーターのない、この関数のバリアントは、設定されたフィード処理タイム ゾーンを使用します。

  • format_date(value)

  • format_date(value, 'yyyy-MM-dd')

  • format_date(value, 'h:mm a', 'GMT-08:00')

  • format_date(value, 'HH:mm:ss', 'Europe/Berlin')

format_date (dateColumn, datePattern)

format_date(dateColum, datePattern, 'GMT') に相当します

format_date (dateColumn)

format_date(dateColum, 'yyyy-MM-dd'T'HH:mm:ss.SSSZ', 'GMT') に相当します。

geo_distance(String column-or-lat1, String column-or-long1, String column-or-lat2, String column-or-long2)

緯度と経度で特定される 2 つの場所の間の地理的距離を計算します。一般に、座標の 1 セットは、データ内の 2 列または 2 つの式で提供され、もう 1 つはリテラル値で提供されます。

パラメーター値が nullの場合、これは null 値を返します。

matches(String col-or-expr, String pattern)

pattern の正規表現にマッチする文字列が、列または式の値のどこかに存在するかどうかを決定します。マッチングは大文字と小文字を区別します。論理値 (true または false) を返します。

例:

where matches(firstname,'ra[n|l]')='true'

firstname 列の Frank、Gerald、または Randy にマッチします。暗黙のワイルドカードがない、正確な正規表現のマッチングを実行するには、regex 関数を参照してください。

nvl(String col-or-expr, String str)

nvl(Date col-or-expr, String str)

nvl(Number col-or-expr, String str)

指定された列または式の null 値を指定された文字列値の置き換えます。

注意: 以前のリリースでは、空白文字 (スペースやタブなど) のみの文字列は null 値として処理されました。

3.8 以降、値がない、あるいは空の文字列を含む文字列値の列のみが null とみなされます。

project(Xcol_1, X col_2, ..., X col_n, Number index)

列タイプ X の col_1、col_2、...、col_n 列の index の場所にある値を返します。index が整数でない場合は丸められます。

quarter(Date col-or-expr)

quarter(String col-or-expr)

quarter(Long col-or-expr)

列または式の値を日付に変換し、四半期の数値を整数として返します。

regex(String col-or-expr, String pattern)

pattern に、正規表現でマッチする文字列が、指定された列または式の値に存在するかどうかを決定します。マッチングは大文字と小文字を区別します。論理値 (true または false) を返します。

注意: この関数は、正規表現に暗黙のワイルドカードを追加しません。列の値のどこかの文字列を見つけるには、matches 関数を使用します。

例:

where regex(firstname,'ra[n|l]')=true

firstname 列の Ralph または Randy がマッチしますが、Frank や Gerald はマッチしません。

split_part(String col-or-expr, String delim, Integer part)

split_part(String col-or-expr, Character delim, Integer part)

各値が delim で定義された各区切り文字で区切られている場合に、列または式の値の n 番目の部分を返します。例:

split_part("INV:2012:GHI345",":",3)

文字列「GHI345」を返します。

split_regex((String col-or-expr, String pattern, Integer part)

この関数は、pattern からの列の値を区切るのに使用される区切り文字が正規表現であること以外は、split_part と同じです。

time_mask(Date column, String mask)

time_mask(String column, String mask)

列または式の値を、必要な場合は yyyy-MM-dd:HH:mm:ss 形式で日付と時刻に変換します。

注意: 列の値に時間が含まれない場合は、時間に 00:00:00 が設定されます。

マスクによって識別された時間の部分を使用して、この日付と時刻の部分を抽出します。

有効なマスクは以下のとおりです:

  • y = 年のみを返します。

  • M = 年と月を返します。

  • d = 年、月、日を返します。

  • H = 完全な日付と時間を返します。

  • m = 完全な日付、時間、分を返します。

  • s = 完全な日付と時刻を返します。

to_date(String value)

to_date(String value, String datePattern)

to_date(String value, String datePattern, String timeZone)

文字列値を日付に変換します。

datePattern は、存在する場合、Java の SimpleDateFormat が受け入れるすべてのパターンになります。パターンが指定されていない場合、この関数は、以下の日付形式の文字列を繰り返し変換しようと試みるため、パフォーマンスに悪影響を与えます。

  • yyyy-MM-dd HH:mm:ss.SSS

  • yyyy-MM-dd HH:mm:ss

  • yyyy-MM-dd'T'HH:mm:ss.SSSXXX

  • yyyy-MM-dd'T'HH:mm:ss.SSS

  • yyyy-MM-dd'T'HH:mm:ssXXX

  • yyyy-MM-dd'T'HH:mm:ss

  • M/dd/yy または現在のロケールの短い形式

  • MMMM d, yyyy または現在のロケールの長い形式

  • EEEE, MMMM d, yyyy または現在のロケールの完全な形式

  • EEE MMM d HH:mm:ss z yyyy

  • EEE, d MMM yyyy HH:mm:ss Z

  • dd.MM.yyyy HH:mm:ss

  • yyyy-MM-dd

  • dd-MM-yyyy

  • dd.MM.yy

  • MM/dd/yy

    列の値に使用される日付と時刻のパターンを定義するには、datePattern パラメーターを使用します。

注意: 日付形式パターンの詳細については、Java SimpleDateFormat クラスを参照してください。

timeZone は、Java の TimeZone.getTimeZone メソッドが理解する任意のタイム ゾーンになります。詳細については、該当する Java 文書を参照してください。timeZone パラメーターのない、この関数のバリアントは、設定されたフィード処理タイム ゾーンを使用します。

truncate(Number col-or-expr, Number decimals)

数値列または式の場合、これは指定された小数点以下の桁数まで数値を切り捨てます。decimals パラメーターが省略された場合、小数を切り捨てます。