7.15.23. string_substring

バージョン 6.0.7 で追加.

7.15.23.1. 概要

string_substring は文字列の部分文字列を抽出します。

この関数を有効にするには、以下のコマンドで functions/string プラグインを登録します:

plugin_register functions/string

7.15.23.2. 構文

string_substring は2つから4つの引数を指定できます。

string_substring(target, nth[, options])
string_substring(target, nth, length[, options])

options には以下のキーを指定します。すべてのキー・値のペアは省略可能です。:

{
  "default_value": default_value
}

7.15.23.3. 使い方

使い方を示すために使うスキーマ定義とサンプルデータは以下の通りです。

サンプルスキーマ:

実行例:

plugin_register functions/string
# [[0, 1337566253.89858, 0.000355720520019531], true]
table_create Memos TABLE_HASH_KEY ShortText
# [[0, 1337566253.89858, 0.000355720520019531], true]

サンプルデータ:

実行例:

load --table Memos
[
{"_key": "Groonga"}
]
# [[0, 1337566253.89858, 0.000355720520019531], 1]

以下は簡単な使用例です。

実行例:

select Memos --output_columns '_key, string_substring(_key, 2, 3)'
# [
#   [
#     0,
#     1337566253.89858,
#     0.000355720520019531
#   ],
#   [
#     [
#       [
#         1
#       ],
#       [
#         [
#           "_key",
#           "ShortText"
#         ],
#         [
#           "string_substring",
#           null
#         ]
#       ],
#       [
#         "Groonga",
#         "oon"
#       ]
#     ]
#   ]
# ]

以下の例では、 nth に負の値を指定しています。

実行例:

select Memos --output_columns '_key, string_substring(_key, -3, 2)'
# [
#   [
#     0,
#     1337566253.89858,
#     0.000355720520019531
#   ],
#   [
#     [
#       [
#         1
#       ],
#       [
#         [
#           "_key",
#           "ShortText"
#         ],
#         [
#           "string_substring",
#           null
#         ]
#       ],
#       [
#         "Groonga",
#         "ng"
#       ]
#     ]
#   ]
# ]

以下の例では、デフォルト値を指定しています。

実行例:

select Memos --output_columns '_key, string_substring(_key, 50, 1, { "default_value" : "default" })'
# [
#   [
#     0,
#     1337566253.89858,
#     0.000355720520019531
#   ],
#   [
#     [
#       [
#         1
#       ],
#       [
#         [
#           "_key",
#           "ShortText"
#         ],
#         [
#           "string_substring",
#           null
#         ]
#       ],
#       [
#         "Groonga",
#         "default"
#       ]
#     ]
#   ]
# ]

カラムの代わりに文字列リテラルを指定することもできます。

実行例:

select Memos --output_columns 'string_substring("Groonga", 2, 3)'
# [
#   [
#     0,
#     1337566253.89858,
#     0.000355720520019531
#   ],
#   [
#     [
#       [
#         1
#       ],
#       [
#         [
#           "string_substring",
#           null
#         ]
#       ],
#       [
#         "oon"
#       ]
#     ]
#   ]
# ]

7.15.23.4. 引数

7.15.23.4.1. 必須引数

7.15.23.4.1.1. target

対象となる文字列または文字列型カラムを指定します。

7.15.23.4.1.2. nth

target から抽出を開始する位置を0始まりの文字数単位で指定します。

負の値を指定した場合は終端から数えます。

7.15.23.4.2. 省略可能引数

7.15.23.4.2.1. length

nth から抽出する文字数を指定します。

省略するか、負の値を指定した場合は、 nth から終端までを抽出します。

7.15.23.4.2.2. options

バージョン 11.0.3 で追加.

以下のキーを指定します。

default_value

length に0を指定した場合を除いて、部分文字列が空文字列になった場合に返される文字列を指定します。

省略時は空文字列です。

7.15.23.5. 戻り値

string_substring は指定した条件で抽出された部分文字列を返却します。