mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-03-04 01:49:15 +00:00
To avoid having to specify each spec by hand (which can miss specs to be added), the test infrastructure now performs classpath discovery so that each spec added, is automatically considered. Relates #40358 (cherry picked from commit d0f60b4425c731509aa8ca765d55f563f866ef90)
487 lines
13 KiB
Plaintext
487 lines
13 KiB
Plaintext
[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/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/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/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/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/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/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/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/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/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/docs.csv-spec[stringLocateWoStart]
|
||
--------------------------------------------------
|
||
|
||
["source","sql",subs="attributes,callouts,macros"]
|
||
--------------------------------------------------
|
||
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",subs="attributes,callouts,macros"]
|
||
--------------------------------------------------
|
||
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",subs="attributes,callouts,macros"]
|
||
--------------------------------------------------
|
||
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",subs="attributes,callouts,macros"]
|
||
--------------------------------------------------
|
||
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",subs="attributes,callouts,macros"]
|
||
--------------------------------------------------
|
||
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",subs="attributes,callouts,macros"]
|
||
--------------------------------------------------
|
||
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",subs="attributes,callouts,macros"]
|
||
--------------------------------------------------
|
||
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",subs="attributes,callouts,macros"]
|
||
--------------------------------------------------
|
||
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",subs="attributes,callouts,macros"]
|
||
--------------------------------------------------
|
||
include-tagged::{sql-specs}/docs/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/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/docs.csv-spec[stringUCase]
|
||
--------------------------------------------------
|