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