[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",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{sql-specs}/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",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{sql-specs}/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",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{sql-specs}/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",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{sql-specs}/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",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{sql-specs}/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",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{sql-specs}/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",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{sql-specs}/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",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{sql-specs}/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",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{sql-specs}/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",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{sql-specs}/docs.csv-spec[stringLocateWoStart] -------------------------------------------------- ["source","sql",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{sql-specs}/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",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{sql-specs}/docs.csv-spec[stringLTrim] -------------------------------------------------- [[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",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{sql-specs}/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",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{sql-specs}/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",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{sql-specs}/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",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{sql-specs}/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",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{sql-specs}/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",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{sql-specs}/docs.csv-spec[stringSpace] -------------------------------------------------- [[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",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{sql-specs}/docs.csv-spec[stringSubString] -------------------------------------------------- [[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",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{sql-specs}/docs.csv-spec[stringUCase] --------------------------------------------------