説明
この関数は、入力文字列を区切り文字で複数の部分文字列に分割し、指定された位置の部分文字列を返します。
説明
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