説明
この関数は、入力された文字列を区切り文字で複数のサブ文字列に分割し、指定された位置のサブ文字列を返します。
説明
OceanBaseデータベースV4.3.5では、この関数はV4.3.5 BP1バージョンからサポートされています。
使用制限
パラメータ start_part と end_part の記号は一致していなければなりません。start_part が負の値の場合、end_part を指定することはできず、そうでない場合はエラーが報告されます。
構文宣言
SPLIT_PART(str, delimiter, start_part[, end_part])
パラメータの説明
str:分割する文字列を表します。サポートされる型:VARCHAR、TINYTEXT、TEXT、LONGTEXT、NULLなど。JSONタイプはサポートされていません。delimiter:文字列を分割するための区切り文字を表します。サポートされる型:VARCHAR、NULL。start_part:strを分割した後の何番目の部分を返すかを指定します。サポートされる型:INT、NULL。end_part:オプションです。end_partを指定すると、式はstart_partからend_partまでの文字列を返します。サポートされる型:INT、NULL。
戻り値のタイプ
- ほとんどのシナリオでは、戻り値のタイプは
strのタイプと一致しますが、strがTINYTEXTの場合、戻り値のタイプはVARCHARになります。 - 式の任意のパラメータが
NULLの場合、実行結果はNULLになります。 delimiterがstr内に存在しない場合、またstart_partが1の場合、strの元の文字列を返します。start_part = 0の場合、0は1として扱われます。start_part < 0の場合、逆順で処理されます。- 負の数値は逆順で処理されます。
例
SELECT
SPLIT_PART('a,b,c,d', ',', 1),
SPLIT_PART('a,b,c,d', ',', 1, 2),
SPLIT_PART('a,b,c,d', ',', 0),
SPLIT_PART('a,b,c,d', ',', -2),
SPLIT_PART('a,b,c,d', ',', 5),
SPLIT_PART('a,b,c,d', ',', -5);
実行結果は次のとおりです:
+-------------------------------+----------------------------------+-------------------------------+--------------------------------+-------------------------------+--------------------------------+
| SPLIT_PART('a,b,c,d', ',', 1) | SPLIT_PART('a,b,c,d', ',', 1, 2) | SPLIT_PART('a,b,c,d', ',', 0) | SPLIT_PART('a,b,c,d', ',', -2) | SPLIT_PART('a,b,c,d', ',', 5) | SPLIT_PART('a,b,c,d', ',', -5) |
+-------------------------------+----------------------------------+-------------------------------+--------------------------------+-------------------------------+--------------------------------+
| a | a,b | a | c | | |
+-------------------------------+----------------------------------+-------------------------------+--------------------------------+-------------------------------+--------------------------------+
1 row in set