OpenSearch/docs/reference/sql/functions/string.asciidoc

521 lines
13 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[role="xpack"]
[testenv="basic"]
[[sql-functions-string]]
=== String Functions
Functions for performing string manipulation.
[[sql-functions-string-ascii]]
==== `ASCII`
.Synopsis:
[source, sql]
--------------------------------------------------
ASCII(string_exp) <1>
--------------------------------------------------
*Input*:
<1> string expression
*Output*: integer
*Description*: Returns the ASCII code value of the leftmost character of `string_exp` as an integer.
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringAscii]
--------------------------------------------------
[[sql-functions-string-bit-length]]
==== `BIT_LENGTH`
.Synopsis:
[source, sql]
--------------------------------------------------
BIT_LENGTH(string_exp) <1>
--------------------------------------------------
*Input*:
<1> string expression
*Output*: integer
*Description*: Returns the length in bits of the `string_exp` input expression.
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringBitLength]
--------------------------------------------------
[[sql-functions-string-char]]
==== `CHAR`
.Synopsis:
[source, sql]
--------------------------------------------------
CHAR(code) <1>
--------------------------------------------------
*Input*:
<1> integer expression
*Output*: string
*Description*: Returns the character that has the ASCII code value specified by the numeric input. The value should be between 0 and 255; otherwise, the return value is data sourcedependent.
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringChar]
--------------------------------------------------
[[sql-functions-string-char-length]]
==== `CHAR_LENGTH`
.Synopsis:
[source, sql]
--------------------------------------------------
CHAR_LENGTH(string_exp) <1>
--------------------------------------------------
*Input*:
<1> string expression
*Output*: integer
*Description*: Returns the length in characters of the input, if the string expression is of a character data type; otherwise, returns the length in bytes of the string expression (the smallest integer not less than the number of bits divided by 8).
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringCharLength]
--------------------------------------------------
[[sql-functions-string-concat]]
==== `CONCAT`
.Synopsis:
[source, sql]
--------------------------------------------------
CONCAT(
string_exp1, <1>
string_exp2) <2>
--------------------------------------------------
*Input*:
<1> string expression
<2> string expression
*Output*: string
*Description*: Returns a character string that is the result of concatenating `string_exp1` to `string_exp2`. If one of the string is `NULL`, the other string will be returned.
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringConcat]
--------------------------------------------------
[[sql-functions-string-insert]]
==== `INSERT`
.Synopsis:
[source, sql]
--------------------------------------------------
INSERT(
source, <1>
start, <2>
length, <3>
replacement) <4>
--------------------------------------------------
*Input*:
<1> string expression
<2> integer expression
<3> integer expression
<4> string expression
*Output*: string
*Description*: Returns a string where `length` characters have been deleted from `source`, beginning at `start`, and where `replacement` has been inserted into `source`, beginning at `start`.
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringInsert]
--------------------------------------------------
[[sql-functions-string-lcase]]
==== `LCASE`
.Synopsis:
[source, sql]
--------------------------------------------------
LCASE(string_exp) <1>
--------------------------------------------------
*Input*:
<1> string expression
*Output*: string
*Description*: Returns a string equal to that in `string_exp`, with all uppercase characters converted to lowercase.
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringLCase]
--------------------------------------------------
[[sql-functions-string-left]]
==== `LEFT`
.Synopsis:
[source, sql]
--------------------------------------------------
LEFT(
string_exp, <1>
count) <2>
--------------------------------------------------
*Input*:
<1> string expression
<2> integer expression
*Output*: string
*Description*: Returns the leftmost count characters of `string_exp`.
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringLeft]
--------------------------------------------------
[[sql-functions-string-length]]
==== `LENGTH`
.Synopsis:
[source, sql]
--------------------------------------------------
LENGTH(string_exp) <1>
--------------------------------------------------
*Input*:
<1> string expression
*Output*: integer
*Description*: Returns the number of characters in `string_exp`, excluding trailing blanks.
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringLength]
--------------------------------------------------
[[sql-functions-string-locate]]
==== `LOCATE`
.Synopsis:
[source, sql]
--------------------------------------------------
LOCATE(
pattern, <1>
source <2>
[, start]<3>
)
--------------------------------------------------
*Input*:
<1> string expression
<2> string expression
<3> integer expression; optional
*Output*: integer
*Description*: Returns the starting position of the first occurrence of `pattern` within `source`. The search for the first occurrence of `pattern` begins with the first character position in `source` unless the optional argument, `start`, is specified. If `start` is specified, the search begins with the character position indicated by the value of `start`. The first character position in `source` is indicated by the value 1. If `pattern` is not found within `source`, the value 0 is returned.
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringLocateWoStart]
--------------------------------------------------
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringLocateWithStart]
--------------------------------------------------
[[sql-functions-string-ltrim]]
==== `LTRIM`
.Synopsis:
[source, sql]
--------------------------------------------------
LTRIM(string_exp) <1>
--------------------------------------------------
*Input*:
<1> string expression
*Output*: string
*Description*: Returns the characters of `string_exp`, with leading blanks removed.
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringLTrim]
--------------------------------------------------
[[sql-functions-string-octet-length]]
==== `OCTET_LENGTH`
.Synopsis:
[source, sql]
--------------------------------------------------
OCTET_LENGTH(string_exp) <1>
--------------------------------------------------
*Input*:
<1> string expression
*Output*: integer
*Description*: Returns the length in bytes of the `string_exp` input expression.
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringOctetLength]
--------------------------------------------------
[[sql-functions-string-position]]
==== `POSITION`
.Synopsis:
[source, sql]
--------------------------------------------------
POSITION(
string_exp1, <1>
string_exp2) <2>
--------------------------------------------------
*Input*:
<1> string expression
<2> string expression
*Output*: integer
*Description*: Returns the position of the `string_exp1` in `string_exp2`. The result is an exact numeric.
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringPosition]
--------------------------------------------------
[[sql-functions-string-repeat]]
==== `REPEAT`
.Synopsis:
[source, sql]
--------------------------------------------------
REPEAT(
string_exp, <1>
count) <2>
--------------------------------------------------
*Input*:
<1> string expression
<2> integer expression
*Output*: string
*Description*: Returns a character string composed of `string_exp` repeated `count` times.
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringRepeat]
--------------------------------------------------
[[sql-functions-string-replace]]
==== `REPLACE`
.Synopsis:
[source, sql]
--------------------------------------------------
REPLACE(
source, <1>
pattern, <2>
replacement) <3>
--------------------------------------------------
*Input*:
<1> string expression
<2> string expression
<3> string expression
*Output*: string
*Description*: Search `source` for occurrences of `pattern`, and replace with `replacement`.
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringReplace]
--------------------------------------------------
[[sql-functions-string-right]]
==== `RIGHT`
.Synopsis:
[source, sql]
--------------------------------------------------
RIGHT(
string_exp, <1>
count) <2>
--------------------------------------------------
*Input*:
<1> string expression
<2> integer expression
*Output*: string
*Description*: Returns the rightmost count characters of `string_exp`.
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringRight]
--------------------------------------------------
[[sql-functions-string-rtrim]]
==== `RTRIM`
.Synopsis:
[source, sql]
--------------------------------------------------
RTRIM(string_exp) <1>
--------------------------------------------------
*Input*:
<1> string expression
*Output*: string
*Description*: Returns the characters of `string_exp` with trailing blanks removed.
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringRTrim]
--------------------------------------------------
[[sql-functions-string-space]]
==== `SPACE`
.Synopsis:
[source, sql]
--------------------------------------------------
SPACE(count) <1>
--------------------------------------------------
*Input*:
<1> integer expression
*Output*: string
*Description*: Returns a character string consisting of `count` spaces.
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringSpace]
--------------------------------------------------
[[sql-functions-string-startswith]]
==== `STARTS_WITH`
.Synopsis:
[source, sql]
--------------------------------------------------
STARTS_WITH(
source, <1>
pattern) <2>
--------------------------------------------------
*Input*:
<1> string expression
<2> string expression
*Output*: boolean value
*Description*: Returns `true` if the source expression starts with the specified pattern, `false` otherwise. The matching is case sensitive.
If either parameters is `null`, the function returns `null`.
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringStartsWithTrue]
--------------------------------------------------
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringStartsWithFalse]
--------------------------------------------------
[[sql-functions-string-substring]]
==== `SUBSTRING`
.Synopsis:
[source, sql]
--------------------------------------------------
SUBSTRING(
source, <1>
start, <2>
length) <3>
--------------------------------------------------
*Input*:
<1> string expression
<2> integer expression
<3> integer expression
*Output*: string
*Description*: Returns a character string that is derived from `source`, beginning at the character position specified by `start` for `length` characters.
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringSubString]
--------------------------------------------------
[[sql-functions-string-trim]]
==== `TRIM`
.Synopsis:
[source, sql]
--------------------------------------------------
TRIM(string_exp) <1>
--------------------------------------------------
*Input*:
<1> string expression
*Output*: string
*Description*: Returns the characters of `string_exp`, with leading and trailing blanks removed.
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringTrim]
--------------------------------------------------
[[sql-functions-string-ucase]]
==== `UCASE`
.Synopsis:
[source, sql]
--------------------------------------------------
UCASE(string_exp) <1>
--------------------------------------------------
*Input*:
<1> string expression
*Output*: string
*Description*: Returns a string equal to that of the input, with all lowercase characters converted to uppercase.
[source, sql]
--------------------------------------------------
include-tagged::{sql-specs}/docs/docs.csv-spec[stringUCase]
--------------------------------------------------