12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- [discrete]
- [[esql-case]]
- === `CASE`
- *Syntax*
- [source,esql]
- ----
- CASE(condition1, value1[, ..., conditionN, valueN][, default_value])
- ----
- *Parameters*
- `conditionX`::
- A condition.
- `valueX`::
- The value that's returned when the corresponding condition is the first to
- evaluate to `true`.
- `default_value`::
- The default value that's is returned when no condition matches.
- *Description*
- Accepts pairs of conditions and values. The function returns the value that
- belongs to the first condition that evaluates to `true`.
- If the number of arguments is odd, the last argument is the default value which
- is returned when no condition matches. If the number of arguments is even, and
- no condition matches, the function returns `null`.
- *Example*
- Determine whether employees are monolingual, bilingual, or polyglot:
- [source,esql]
- [source.merge.styled,esql]
- ----
- include::{esql-specs}/docs.csv-spec[tag=case]
- ----
- [%header.monospaced.styled,format=dsv,separator=|]
- |===
- include::{esql-specs}/docs.csv-spec[tag=case-result]
- |===
- Calculate the total connection success rate based on log messages:
- [source,esql]
- [source.merge.styled,esql]
- ----
- include::{esql-specs}/conditional.csv-spec[tag=docsCaseSuccessRate]
- ----
- [%header.monospaced.styled,format=dsv,separator=|]
- |===
- include::{esql-specs}/conditional.csv-spec[tag=docsCaseSuccessRate-result]
- |===
- Calculate an hourly error rate as a percentage of the total number of log
- messages:
- [source,esql]
- [source.merge.styled,esql]
- ----
- include::{esql-specs}/conditional.csv-spec[tag=docsCaseHourlyErrorRate]
- ----
- [%header.monospaced.styled,format=dsv,separator=|]
- |===
- include::{esql-specs}/conditional.csv-spec[tag=docsCaseHourlyErrorRate-result]
- |===
|