[discrete] [[esql-dissect]] === `DISSECT` **Syntax** [source,esql] ---- DISSECT input "pattern" [APPEND_SEPARATOR=""] ---- *Parameters* `input`:: The column that contains the string you want to structure. If the column has multiple values, `DISSECT` will process each value. `pattern`:: A <>. ``:: A string used as the separator between appended values, when using the <>. *Description* `DISSECT` enables you to <>. `DISSECT` matches the string against a delimiter-based pattern, and extracts the specified keys as columns. Refer to <> for the syntax of dissect patterns. *Examples* // tag::examples[] The following example parses a string that contains a timestamp, some text, and an IP address: [source.merge.styled,esql] ---- include::{esql-specs}/docs.csv-spec[tag=basicDissect] ---- [%header.monospaced.styled,format=dsv,separator=|] |=== include::{esql-specs}/docs.csv-spec[tag=basicDissect-result] |=== By default, `DISSECT` outputs keyword string columns. To convert to another type, use <>: [source.merge.styled,esql] ---- include::{esql-specs}/docs.csv-spec[tag=dissectWithToDatetime] ---- [%header.monospaced.styled,format=dsv,separator=|] |=== include::{esql-specs}/docs.csv-spec[tag=dissectWithToDatetime-result] |=== // end::examples[]