[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 source–dependent. [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] --------------------------------------------------