SUBSTRING [esql-substring]Syntax
:::{image} ../../../../../images/substring.svg :alt: Embedded :class: text-center :::
Parameters
string
:   String expression. If null, the function returns null.
start
:   Start position.
length
:   Length of the substring from the start position. Optional; if omitted, all positions after start are returned.
Description
Returns a substring of a string, specified by a start position and an optional length.
Supported types
| string | start | length | result | 
|---|---|---|---|
| keyword | integer | integer | keyword | 
| text | integer | integer | keyword | 
Examples
This example returns the first three characters of every last name:
FROM employees
| KEEP last_name
| EVAL ln_sub = SUBSTRING(last_name, 1, 3)
| last_name:keyword | ln_sub:keyword | 
|---|---|
| Awdeh | Awd | 
| Azuma | Azu | 
| Baek | Bae | 
| Bamford | Bam | 
| Bernatsky | Ber | 
A negative start position is interpreted as being relative to the end of the string. This example returns the last three characters of of every last name:
FROM employees
| KEEP last_name
| EVAL ln_sub = SUBSTRING(last_name, -3, 3)
| last_name:keyword | ln_sub:keyword | 
|---|---|
| Awdeh | deh | 
| Azuma | uma | 
| Baek | aek | 
| Bamford | ord | 
| Bernatsky | sky | 
If length is omitted, substring returns the remainder of the string. This example returns all characters except for the first:
FROM employees
| KEEP last_name
| EVAL ln_sub = SUBSTRING(last_name, 2)
| last_name:keyword | ln_sub:keyword | 
|---|---|
| Awdeh | wdeh | 
| Azuma | zuma | 
| Baek | aek | 
| Bamford | amford | 
| Bernatsky | ernatsky |