Skip to main content
このページの機能は、アカウントで DV Engine が有効な場合にのみ利用できます。QF ドライバーを使用しているアカウントでは、これらの機能は利用できません。

EXPLAIN

SQL 文の実行計画を返します。EXPLAIN は SELECT、DELETE、その他の DML 文をサポートします。結果セットには string 型の単一カラム plan が含まれます。
EXPLAIN example
構文

SQL 構文

CROSS APPLY / OUTER APPLY

左側のテーブルの各行に対して、テーブル値関数またはサブクエリを適用する横方向結合(lateral join)です。
  • CROSS APPLY 適用した式が行を返さない左側の行は除外します(内部結合と同等)。
  • OUTER APPLY 適用した式が行を返さない場合でも左側の行を保持し、一致しないカラムを NULL で埋めます(左結合と同等)。
構文

Window 関数

Window 関数は DV Engine で評価され、個々のデータソースにはプッシュダウンされません。

LEAD

ウィンドウ内で現在の行から offset 行先の行にある expr の値を返します。該当する行が存在しない場合は default を返します。 構文
パラメータ
  • expr 対象の行で評価する式。
  • offset 前方に見る行数。デフォルト値は 1 です。
  • default 指定されたオフセットに行が存在しない場合に返す値。デフォルト値は NULL です。

LAG

ウィンドウ内で現在の行から offset 行前の行にある expr の値を返します。該当する行が存在しない場合は default を返します。 構文
パラメータ
  • expr 対象の行で評価する式。
  • offset 後方に見る行数。デフォルト値は 1 です。
  • default 指定されたオフセットに行が存在しない場合に返す値。デフォルト値は NULL です。

FIRST_VALUE

現在のウィンドウフレーム内の最初の値を返します。 構文
パラメータ
  • expr 評価する式。

LAST_VALUE

現在のウィンドウフレーム内の最後の値を返します。 構文
パラメータ
  • expr 評価する式。

集計関数

STDDEV_POP / STDDEV_SAMP

数値カラムの母標準偏差または標本標準偏差を返します。 構文
パラメータ
  • expr 評価する数値カラムまたは式。

VAR_POP / VAR_SAMP

数値カラムの母分散または標本分散を返します。 構文
パラメータ
  • expr 評価する数値カラムまたは式。

STRING_AGG

グループ内の値を、指定した区切り文字で連結して単一の文字列にします。 構文
パラメータ
  • expr 連結するカラムまたは式。
  • delimiter 連結する値の間に配置する区切り文字列。
STRING_AGG の内部で DISTINCT または ORDER BY を使用すると、評価は DV Engine 内で行われ、ソースにはプッシュダウンされません。

JSONARRAY_AGG

グループ内の値を JSON 配列にまとめます。JSON 型の値を返します。 構文
パラメータ
  • expr まとめるカラムまたは式。

文字列関数

REGEXP_REPLACE

正規表現パターンに一致する部分文字列を置換します。 構文
パラメータ
  • str 入力文字列。
  • pattern 一致させる正規表現。
  • replacement 各一致に対して置換する文字列。
  • flags オプションの修飾フラグ: g(すべての一致を置換)、m(複数行)、i(大文字小文字を区別しない)。

REGEXP_INSTR

文字列内で正規表現が最初に一致した位置を 1 始まりで返します。一致がない場合は 0 を返します。 構文
パラメータ
  • str 入力文字列。
  • pattern 一致させる正規表現。

REGEXP_SUBSTR

正規表現に一致した部分文字列を返します。一致がない場合は NULL を返します。 構文
パラメータ
  • str 入力文字列。
  • pattern 一致させる正規表現。

SPLIT_PART

文字列を区切り文字で分割した後の N 番目のフィールドを返します。フィールドは 1 始まりです。 構文
パラメータ
  • str 入力文字列。
  • delimiter 区切り文字列。
  • n 返すフィールドの 1 始まりのインデックス。

BASE64_ENCODE / BASE64_DECODE

バイナリデータを Base64 文字列にエンコード、または Base64 文字列をバイナリにデコードします。 構文
パラメータ
  • bytes エンコードするバイナリデータ。
  • str デコードする Base64 エンコード文字列。

TEXT_ENCODE / TEXT_DECODE

指定した文字セットを使用して、文字列とバイト間の変換を行います。 構文
パラメータ
  • str エンコードする文字列。
  • bytes デコードするバイトシーケンス。
  • charset 文字セット名。UTF-8ISO-8859-1 など。

similarity

0.0 から 1.0 の間のあいまい文字列類似度スコアを返します。 構文
パラメータ
  • v1 1 つ目の文字列。
  • v2 v1 と比較する 2 つ目の文字列。
  • algorithm オプション。使用する類似度アルゴリズム。デフォルト値は jaro-winkler です。levenshtein などの代替も指定できます。

セキュリティ・暗号関数

SHA1 / SHA2_256 / SHA2_512

入力テキストの SHA ハッシュを計算し、結果をバイナリ値として返します。固定のアルゴリズムを指定したい場合に、HASHBYTES の直接的な代替として使用します。 構文
パラメータ
  • text ハッシュ化する文字列。

AES_ENCRYPT / AES_DECRYPT

AES-256 対称暗号化を使用して文字列を暗号化または復号します。 構文
パラメータ
  • text 暗号化する平文文字列。
  • bytes 復号する暗号化バイトシーケンス。
  • key AES-256 暗号化キー。

JSON 関数

JSONPATHVALUE

JSONPath 式を使用して JSON ドキュメントからスカラー値を抽出します。この関数は JSON_EXTRACT のエイリアスで、CData ドライバーにプッシュダウンされます。 構文
パラメータ
  • json クエリ対象の JSON ドキュメント。
  • path 抽出するスカラー値を特定する JSONPath 式。
  • nullLeaf オプションの Boolean。true の場合、リーフノードが存在しなくてもエラーを発生させず NULL を返します。

JSONQUERY

指定した JSONPath の位置にある JSON フラグメント(オブジェクトまたは配列)を抽出します。スカラーではなく JSON 型の値を返します。 構文
パラメータ
  • json クエリ対象の JSON ドキュメント。
  • path 抽出する配列またはオブジェクトを特定する JSONPath 式。
  • nullLeaf オプションの Boolean。true の場合、リーフノードが存在しなくてもエラーを発生させず NULL を返します。

JSONPARSE

文字列または CLOB 値を JSON としてパースします。 構文
パラメータ
  • clob パースする文字列または CLOB。
  • wellformed Boolean。true の場合、関数は JSON バリデーションをスキップします。

JSONOBJECT

1 つ以上の名前と値のペアから JSON オブジェクトを構築します。 構文
パラメータ
  • expr キーに対する値の式。
  • name 値に対するキー名。

JSONARRAY

値のリストから JSON 配列を構築します。 構文
パラメータ
  • expr 配列に含める 1 つ以上の値。

JSONTOXML

JSON 値を XML ドキュメントに変換します。 構文
パラメータ
  • rootName ルート XML 要素として使用する名前。
  • json 変換する JSON 値。

JSONTOARRAY

複数の JSONPath 式を使用して JSON ドキュメントから値を抽出し、配列として返します。各 colpath は、ベースパスに一致する各要素から 1 つの値を抽出します。 構文
パラメータ
  • json クエリ対象の JSON ドキュメント。
  • path 配列反復のためのベース JSONPath。
  • nullLeaf Boolean。true の場合、リーフノードが存在しなくてもエラーを発生させず NULL を返します。
  • colpaths 1 つ以上の JSONPath 式。それぞれ現在の配列要素から値を抽出します。

JSONPath スライス構文

DV Engine は標準の JSONPath を配列スライス記法で拡張しています:

配列関数

ARRAY_GET

配列から 1 始まりのインデックスにある要素を返します。 構文
パラメータ
  • arr アクセスする配列。
  • idx 返す要素の 1 始まりのインデックス。

ARRAY_LENGTH

配列内の要素数を返します。 構文
パラメータ
  • arr 測定する配列。

ARRAY_ADD

末尾に値を追加した新しい配列を返します。 構文
パラメータ
  • arr 元の配列。
  • value 追加する値。

ARRAY_IN

値が配列の要素である場合に true を返します。 構文
パラメータ
  • haystack 検索する配列。
  • needle 探す値。

ARRAY_LIKE

配列内のいずれかの要素が LIKE パターンに一致する場合に true を返します。 構文
パラメータ
  • haystack 検索する配列。
  • pattern 各要素と照合する LIKE パターン。

ARRAY_LIKE_REGEX

配列内のいずれかの要素が正規表現パターンに一致する場合に true を返します。 構文
パラメータ
  • haystack 検索する配列。
  • pattern 各要素と照合する正規表現。

ASARRAY / ASLIST

個々の値から配列またはリストを構築します。 ASLIST-引数をリストとして返します: Object(java.util.List)を返します。
ASARRAY-引数を配列として返します: SQL 配列を返します。
SQL 配列型が必要な場合は ASARRAY を使用します。汎用リストが期待される場合(たとえば、リストを受け取る他の関数への入力として)は ASLIST を使用します。
構文
パラメータ
  • v1, v2, … 配列またはリストに含める値。

数値関数

BITAND / BITOR / BITXOR

2 つの整数に対してビット単位の AND、OR、XOR 演算を実行します。 構文
パラメータ
  • x 1 つ目の整数。
  • y 2 つ目の整数。

BITNOT

整数に対してビット単位の NOT 演算を実行します。 構文
パラメータ
  • x ビット単位で反転する整数。

日付と時刻の関数

DATE_FORMAT

MySQL スタイルのフォーマットパターンを使用して、日付またはタイムスタンプを文字列にフォーマットします。 構文
パラメータ
  • date フォーマットする日付またはタイムスタンプ値。
  • format フォーマットパターン文字列(例: '%Y-%m-%d''%Y-%m-%d %H:%i:%s')。

ISOWEEK / ISOYEAR

指定した日付の ISO 8601 週番号または ISO 年を返します。第 1 週は、その年の最初の木曜日を含む週です。 構文
パラメータ
  • date 評価する日付値。

日付範囲関数

DV Engine は、日付範囲の境界値を返す便利な関数を提供します。これらを WHERE 句で BETWEEN や比較演算子と組み合わせて使用し、相対的な期間でフィルタします。

L_LAST_MONTH / L_THIS_MONTH / L_NEXT_MONTH

前月、当月、または翌月の開始境界を返します。

L_LAST_N_MONTHS(n) / L_NEXT_N_MONTHS(n)

本日から N か月前方または後方のローリングウィンドウの開始境界を返します。

L_LAST_QUARTER / L_THIS_QUARTER / L_NEXT_QUARTER

前四半期、当四半期、または翌四半期の開始境界を返します。

L_LAST_N_QUARTERS(n) / L_NEXT_N_QUARTERS(n)

本日から N 四半期前方または後方のローリングウィンドウの開始境界を返します。

L_LAST_YEAR / L_THIS_YEAR / L_NEXT_YEAR

前年、当年、または翌年の開始境界を返します。

L_LAST_N_YEARS(n) / L_NEXT_N_YEARS(n)

本日から N 年前方または後方のローリングウィンドウの開始境界を返します。

L_LAST_90_DAYS / L_NEXT_90_DAYS

本日から前方または後方に 90 日のローリングウィンドウの境界日を返します。

その他の関数

UUID

新しいランダムな UUID 文字列を生成します。 構文

オプティマイザヒント

オプティマイザヒントは SQL コメント内に埋め込まれ、DV Engine にクエリ実行の計画方法を指示します。クエリ結果は変更しません。

MAKEDEP

依存結合を強制します。エンジンはこのテーブルを最初に評価し、他のソースをクエリする際にそのキー値を WHERE key IN (...) フィルタとして使用します。これにより、大きなソースから取得する行数を削減します。 構文

MAKENOTDEP

このテーブルに対して、オプティマイザが依存結合を使用しないようにします。 構文

MAKEIND

テーブルを依存結合の独立(駆動)側に強制します。エンジンはこのテーブルを最初に評価し、そのキー値を使用して他方をフィルタします。 構文
以下の例では、SmallTable が結合を駆動するため、LargeTable は IN リストでフィルタされます。

Source Hint

ヒント文字列をソースコネクタの SQL トランスレータにそのまま渡します。 構文