// This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it. *Examples* This example returns the first three characters of every last name: [source.merge.styled,esql] ---- include::{esql-specs}/docs.csv-spec[tag=substring] ---- [%header.monospaced.styled,format=dsv,separator=|] |=== include::{esql-specs}/docs.csv-spec[tag=substring-result] |=== 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: [source.merge.styled,esql] ---- include::{esql-specs}/docs.csv-spec[tag=substringEnd] ---- [%header.monospaced.styled,format=dsv,separator=|] |=== include::{esql-specs}/docs.csv-spec[tag=substringEnd-result] |=== If length is omitted, substring returns the remainder of the string. This example returns all characters except for the first: [source.merge.styled,esql] ---- include::{esql-specs}/docs.csv-spec[tag=substringRemainder] ---- [%header.monospaced.styled,format=dsv,separator=|] |=== include::{esql-specs}/docs.csv-spec[tag=substringRemainder-result] |===