| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | [discrete][[esql-dissect]]=== `DISSECT`**Syntax**[source,esql]----DISSECT input "pattern" [APPEND_SEPARATOR="<separator>"]----*Parameters*`input`::The column that contains the string you want to structure.  If the column hasmultiple values, `DISSECT` will process each value.`pattern`::A <<esql-dissect-patterns,dissect pattern>>.`<separator>`::A string used as the separator between appended values, when using the <<esql-append-modifier,append modifier>>.*Description*`DISSECT` enables you to <<esql-process-data-with-dissect-and-grok,extractstructured data out of a string>>. `DISSECT` matches the string against adelimiter-based pattern, and extracts the specified keys as columns.Refer to <<esql-process-data-with-dissect>> for the syntax of dissect patterns.*Examples*// tag::examples[]The following example parses a string that contains a timestamp, some text, andan 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 anothertype, use <<esql-type-conversion-functions>>:[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[]
 |