The SPLIT_BY_STRING function splits an input string into an array of strings based on a specified delimiter string. This function supports multi-character delimiters and may differ from similar functions in other databases in handling empty strings.
SPLIT_BY_STRING(<str>, <separator>)
| Parameter | Description |
|---|---|
<str> | The source string to be split. Type: VARCHAR |
<separator> | The delimiter string used for splitting. Type: VARCHAR |
Returns ARRAY type, containing an array of strings split by the delimiter.
Splitting rules:
Special cases:
SELECT SPLIT_BY_STRING('hello', 'l');
+-------------------------------+ | SPLIT_BY_STRING('hello', 'l') | +-------------------------------+ | ["he", "", "o"] | +-------------------------------+
SELECT SPLIT_BY_STRING('hello', '');
+------------------------------+ | SPLIT_BY_STRING('hello', '') | +------------------------------+ | ["h", "e", "l", "l", "o"] | +------------------------------+
SELECT SPLIT_BY_STRING('apple::banana::cherry', '::');
+------------------------------------------------+ | SPLIT_BY_STRING('apple::banana::cherry', '::') | +------------------------------------------------+ | ["apple", "banana", "cherry"] | +------------------------------------------------+
SELECT SPLIT_BY_STRING(NULL, ','), SPLIT_BY_STRING('hello', NULL);
+-----------------------------+----------------------------------+ | SPLIT_BY_STRING(NULL, ',') | SPLIT_BY_STRING('hello', NULL) | +-----------------------------+----------------------------------+ | NULL | NULL | +-----------------------------+----------------------------------+
SELECT SPLIT_BY_STRING('', ','), SPLIT_BY_STRING('hello', 'xyz');
+---------------------------+----------------------------------+ | SPLIT_BY_STRING('', ',') | SPLIT_BY_STRING('hello', 'xyz') | +---------------------------+----------------------------------+ | [""] | ["hello"] | +---------------------------+----------------------------------+
SELECT SPLIT_BY_STRING('a,,b,c', ',');
+-------------------------------+ | SPLIT_BY_STRING('a,,b,c', ',') | +-------------------------------+ | ["a", "", "b", "c"] | +-------------------------------+
SELECT SPLIT_BY_STRING(',a,b,', ',');
+------------------------------+ | SPLIT_BY_STRING(',a,b,', ',') | +------------------------------+ | ["", "a", "b", ""] | +------------------------------+
SELECT SPLIT_BY_STRING('|||', '|');
+----------------------------+ | SPLIT_BY_STRING('|||', '|') | +----------------------------+ | ["", "", "", ""] | +----------------------------+
SELECT SPLIT_BY_STRING('ṭṛì ḍḍumai ṭṛì', ' ');
+--------------------------------------+ | SPLIT_BY_STRING('ṭṛì ḍḍumai ṭṛì', ' ') | +--------------------------------------+ | ["ṭṛì", "ḍḍumai", "ṭṛì"] | +--------------------------------------+
SELECT SPLIT_BY_STRING('hello world', 'xyz');
+--------------------------------------+ | SPLIT_BY_STRING('hello world', 'xyz') | +--------------------------------------+ | ["hello world"] | +--------------------------------------+
SPLIT_BY_STRING, SPLIT