| --- | |
| { | |
| "title": "SUB_REPLACE", | |
| "language": "en", | |
| "description": "The subreplace function is used to replace substrings within a string." | |
| } | |
| --- | |
| ## Description | |
| The `sub_replace` function is used to replace substrings within a string. You can specify the substring to be replaced and the target string to replace it with. It returns a new string where the substring starting from `start` with length `len` in `str` is replaced by `new_str`. If `start` or `len` is a negative integer, it returns NULL. The default value for `len` is the length of `new_str`. | |
| ## Syntax | |
| ```sql | |
| sub_replace(<str>, <new_str>, [ ,<start> [ , <len> ] ]) | |
| ``` | |
| ## Parameters | |
| | Parameter | Description | | |
| | -- | -- | | |
| | `<str>` | The target string in which the replacement will occur | | |
| | `<new_str>` | The string that will replace the specified substring | | |
| | `<start>` | `start` is the position where the replacement operation begins, indicating from which position in the string the replacement will start | | |
| | `<len>` | `len` is an optional parameter that specifies the length of the substring to be replaced | | |
| ## Return Value | |
| Returns the string after replacement. | |
| ## Examples | |
| 1. Basic usage: specify position and length replacement | |
| ```sql | |
| SELECT sub_replace('doris', '***', 1, 2); | |
| ``` | |
| ```text | |
| +-----------------------------------+ | |
| | sub_replace('doris', '***', 1, 2) | | |
| +-----------------------------------+ | |
| | d***is | | |
| +-----------------------------------+ | |
| ``` | |
| 2. Using default length replacement | |
| ```sql | |
| SELECT sub_replace('hello', 'Hi', 0); | |
| ``` | |
| ```text | |
| +--------------------------------+ | |
| | sub_replace('hello', 'Hi', 0) | | |
| +--------------------------------+ | |
| | Hillo | | |
| +--------------------------------+ | |
| ``` | |
| 3. Negative parameter returns NULL | |
| ```sql | |
| SELECT sub_replace('hello', 'Hi', -1, 2); | |
| ``` | |
| ```text | |
| +------------------------------------+ | |
| | sub_replace('hello', 'Hi', -1, 2) | | |
| +------------------------------------+ | |
| | NULL | | |
| +------------------------------------+ | |
| ``` | |
| 4. NULL value handling | |
| ```sql | |
| SELECT sub_replace(NULL, 'new', 0, 3); | |
| ``` | |
| ```text | |
| +-------------------------------------+ | |
| | sub_replace(NULL, 'new', 0, 3) | | |
| +-------------------------------------+ | |
| | NULL | | |
| +-------------------------------------+ | |
| ``` | |
| 5. UTF-8 string | |
| ```sql | |
| SELECT sub_replace('doris', 'ṛìḍḍ', 1, 2); | |
| ``` | |
| ```text | |
| +-------------------------------------------+ | |
| | sub_replace('doris', 'ṛìḍḍ', 1, 2) | | |
| +-------------------------------------------+ | |
| | dṛìḍḍis | | |
| +-------------------------------------------+ | |
| ``` | |
| 6. Start position exceeds string length | |
| ```sql | |
| SELECT sub_replace('hello', 'Hi', 9, 2); | |
| ``` | |
| ```text | |
| +----------------------------------+ | |
| | sub_replace('hello', 'Hi', 9, 2) | | |
| +----------------------------------+ | |
| | NULL | | |
| +----------------------------------+ | |
| ``` | |
| 7. Specified replacement length exceeds remaining string length | |
| ```sql | |
| SELECT sub_replace('hello', 'Hi', 1, 9); | |
| ``` | |
| ```text | |
| +----------------------------------+ | |
| | sub_replace('hello', 'Hi', 1, 9) | | |
| +----------------------------------+ | |
| | hHi | | |
| +----------------------------------+ | |
| ``` | |
| ### Keywords | |
| SUB_REPLACE, REPLACE |