> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloud.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# STRING

> 文字列関数は、文字列カラムに格納されたデータを操作、検索、整形するために使用します。

## ASCII

文字列式の左端の文字の ASCII コード値を返します。

**構文**

```bash theme={null}
ASCII(character_expression)
```

**パラメータ**

* **character\_expression** 文字列式。

**例**

```bash theme={null}
SELECT ASCII('0');
--  Result: 48
```

## CHAR

整数の ASCII コードを対応する文字に変換します。

**構文**

```bash theme={null}
CHAR(character_expression)
```

**パラメータ**

* **integer\_expression** 0 から 255 までの整数。

**例**

```bash theme={null}
SELECT CHAR(48);
-- Result: '0'
```

## CHARINDEX

文字列内で指定された式の開始位置を返します。

**構文**

```bash theme={null}
CHARINDEX(expressionToFind ,expressionToSearch [,start_location ])
```

**パラメータ**

* **expressionToFind** 検索する文字列式。
* **expressionToSearch** 検索対象の文字列式（通常はカラム）。
* **start\_location** expressionToSearch 内で expressionToFind の検索を開始する文字位置（オプション）。

**例**

```bash theme={null}
SELECT CHARINDEX('456', '0123456');
-- Result: 4

SELECT CHARINDEX('456', '0123456', 5);
-- Result: -1
```

## CHAR\_LENGTH

式に含まれる UTF-8 文字の数を返します。

**構文**

```bash theme={null}
CHAR_LENGTH(character_expression)
```

**パラメータ**

* **character\_expression** 長さを評価する文字のセット。

**例**

```bash theme={null}
SELECT CHAR_LENGTH('sample text') FROM Account LIMIT 1
-- Result: 11
```

## CONCAT

2 つ以上の文字列値を連結した文字列を返します。

**構文**

```bash theme={null}
CONCAT(string_value1, string_value2 [, string_valueN])
```

**パラメータ**

* **string\_value1** 連結する最初の文字列。
* **string\_value2** 連結する 2 番目の文字列。
* **string\_valueN** 連結する追加の文字列（オプション）。

**例**

```bash theme={null}
SELECT CONCAT('Hello, ', 'world!');
-- Result: 'Hello, world!'
```

## CONTAINS

expressionToFind が expressionToSearch 内で見つかった場合は 1 を返し、それ以外の場合は 0 を返します。

**構文**

```bash theme={null}
CONTAINS(expressionToSearch, expressionToFind)
```

**パラメータ**

* **expressionToSearch** 検索対象の文字列式（通常はカラム）。
* **expressionToFind** 検索する文字列式。

**例**

```bash theme={null}
SELECT CONTAINS('0123456', '456');
-- Result: 1

SELECT CONTAINS('0123456', 'Not a number');
-- Result: 0
```

## ENDSWITH

character\_expression が character\_suffix で終わる場合は 1 を返し、それ以外の場合は 0 を返します。

**構文**

```bash theme={null}
ENDSWITH(character_expression, character_suffix)
```

**パラメータ**

* **character\_expression** 文字列式。
* **character\_suffix** 検索する文字列の接尾辞。

**例**

```bash theme={null}
SELECT ENDSWITH('0123456', '456');
-- Result: 1

SELECT ENDSWITH('0123456', '012');
-- Result: 0
```

## FILESIZE

指定されたファイルパスにあるファイルのバイト数を返します。

**構文**

```bash theme={null}
FILESIZE(uri)
```

**パラメータ**

* **uri** サイズを読み取るファイルのパス。

**例**

```bash theme={null}
SELECT FILESIZE('C:/Users/User1/Desktop/myfile.txt');
-- Result: 23684
```

## FORMAT

指定された書式で整形した値を返します。

**構文**

```bash theme={null}
FORMAT(value [, parseFormat], format )
```

**パラメータ**

* **value** 整形する文字列。
* **parseFormat** 日付値の入力構文を指定する文字列。数値型には適用されません。
* **format** 日付または数値の出力書式を指定する文字列。

**例**

```bash theme={null}
SELECT FORMAT(12.34, '#');
-- Result: 12

SELECT FORMAT(12.34, '#.###');
-- Result: 12.34

SELECT FORMAT(1234, '0.000E0');
-- Result: 1.234E3

SELECT FORMAT('2019/01/01', 'yyyy-MM-dd');
-- Result: 2019-01-01

SELECT FORMAT('20190101', 'yyyyMMdd', 'yyyy-MM-dd');
-- Result: '2019-01-01'
```

## FROM\_UNIXTIME

unix\_timestamp 引数を、現在のタイムゾーンで表される YYYY-MM-DD HH:MM:SS 形式の値として返します。

**構文**

```bash theme={null}
FROM_UNIXTIME(time, issecond)
```

**パラメータ**

* **time** エポック時刻からのタイムスタンプ値。ミリ秒を指定できます。
* **issecond** タイムスタンプ値がエポック時刻からのミリ秒であることを示します。

**例**

```bash theme={null}
SELECT FROM_UNIXTIME(1540495231, 1);
-- Result: 2018-10-25 19:20:31

SELECT FROM_UNIXTIME(1540495357385, 0);
-- Result: 2018-10-25 19:22:37
```

## HASHBYTES

指定されたアルゴリズムを使用して、入力値のハッシュをバイト配列として返します。サポートされるアルゴリズムは MD5、SHA1、SHA2\_256、および SHA2\_512 です。

**構文**

```bash theme={null}
HASHBYTES(algorithm, value)
```

**パラメータ**

* **algorithm** ハッシュに使用するアルゴリズム。MD5、SHA1、SHA2\_256、または SHA2\_512 のいずれかである必要があります。
* **value** ハッシュ対象の値。文字列またはバイト配列である必要があります。

**例**

```bash theme={null}
SELECT HASHBYTES('MD5', 'Test');
-- Result (byte array): 0x0CBC6611F5540BD0809A388DC95A615B
```

## INDEXOF

文字列内で指定された式の開始位置を返します。

**構文**

```bash theme={null}
INDEXOF(expressionToSearch, expressionToFind [,start_location ])
```

**パラメータ**

* **expressionToSearch** 検索対象の文字列式（通常はカラム）。
* **expressionToFind** 検索する文字列式。
* **start\_location** expressionToSearch 内で expressionToFind の検索を開始する文字位置（オプション）。

**例**

```bash theme={null}
SELECT INDEXOF('0123456', '456');
-- Result: 4

SELECT INDEXOF('0123456', '456', 5);
-- Result: -1
```

## ISNULL

null を指定された置換値で置き換えます。

**構文**

```bash theme={null}
ISNULL ( check_expression , replacement_value )
```

**パラメータ**

* **check\_expression** null かどうかをチェックする式。
* **replacement\_value** check\_expression が null の場合に返される式。

**例**

```bash theme={null}
SELECT ISNULL(42, 'Was NULL');
-- Result: 42

SELECT ISNULL(NULL, 'Was NULL');
-- Result: 'Was NULL'
```

## JSON\_AVG

JSON オブジェクト内の JSON 配列の平均値を計算します。配列へのパスは jsonpath 引数で指定します。戻り値は数値または null です。

**構文**

```bash theme={null}
JSON_AVG(json, jsonpath)
```

**パラメータ**

* **json** 計算対象の JSON ドキュメント。
* **jsonpath** ノードを選択するために使用する JSONPath。\[x]、\[2..]、\[..8]、または \[1..12] が利用できます。\[x] はすべてのノードを選択します。

**例**

```bash theme={null}
SELECT JSON_AVG('[1,2,3,4,5]', '$[x]');
-- Result: 3

SELECT JSON_AVG('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]');
-- Result: 3

SELECT JSON_AVG('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[3..]');
-- Result: 4.5
```

## JSON\_COUNT

JSON オブジェクト内の JSON 配列の要素数を返します。配列へのパスは jsonpath 引数で指定します。戻り値は数値または null です。

**構文**

```bash theme={null}
JSON_COUNT(json, jsonpath)
```

**パラメータ**

* **json** 計算対象の JSON ドキュメント。
* **jsonpath** ノードを選択するために使用する JSONPath。\[x]、\[2..]、\[..8]、または \[1..12] が利用できます。\[x] はすべてのノードを選択します。

**例**

```bash theme={null}
SELECT JSON_COUNT('[1,2,3,4,5]', '$[x]');
-- Result: 5

SELECT JSON_COUNT('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]');
-- Result: 5

SELECT JSON_COUNT('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[3..]');
-- Result: 2
```

## JSON\_EXTRACT

JSON 配列またはオブジェクト内の任意の値を選択します。配列へのパスは jsonpath 引数で指定します。戻り値は数値または null です。

**構文**

```bash theme={null}
JSON_EXTRACT(json, jsonpath)
```

**パラメータ**

* **json** 抽出対象の JSON ドキュメント。
* **jsonpath** ノードを選択するために使用する XPath。JSONPath は文字列定数である必要があります。選択されたノードの値はトークン区切りのリストで返されます。

**例**

```bash theme={null}
SELECT JSON_EXTRACT('{"test": {"data": 1}}', '$.test');
-- Result: '{"data":1}'

SELECT JSON_EXTRACT('{"test": {"data": 1}}', '$.test.data');
-- Result: 1

SELECT JSON_EXTRACT('{"test": {"data": [1, 2, 3]}}', '$.test.data[1]');
-- Result: 2
```

## JSON\_MAX

JSON オブジェクト内の JSON 配列の最大値を取得します。配列へのパスは jsonpath 引数で指定します。戻り値は数値または null です。

**構文**

```bash theme={null}
JSON_MAX(json, jsonpath)
```

**パラメータ**

* **json** 計算対象の JSON ドキュメント。
* **jsonpath** ノードを選択するために使用する JSONPath。\[x]、\[2..]、\[..8]、または \[1..12] が利用できます。\[x] はすべてのノードを選択します。

**例**

```bash theme={null}
SELECT JSON_MAX('[1,2,3,4,5]', '$[x]');
-- Result: 5

SELECT JSON_MAX('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]');
-- Result: 5

SELECT JSON_MAX('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[..3]');
-- Result: 4
```

## JSON\_MIN

JSON オブジェクト内の JSON 配列の最小値を取得します。配列へのパスは jsonpath 引数で指定します。戻り値は数値または null です。

**構文**

```bash theme={null}
JSON_MIN(json, jsonpath)
```

**パラメータ**

* **json** 計算対象の JSON ドキュメント。
* **jsonpath** ノードを選択するために使用する JSONPath。\[x]、\[2..]、\[..8]、または \[1..12] が利用できます。\[x] はすべてのノードを選択します。

**例**

```bash theme={null}
SELECT JSON_MIN('[1,2,3,4,5]', '$[x]');
-- Result: 1

SELECT JSON_MIN('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]');
-- Result: 1

SELECT JSON_MIN('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[3..]');
-- Result: 4
```

## JSON\_SUM

JSONPath 式に従って JSON の合計値を計算します。戻り値は数値または null です。

**構文**

```bash theme={null}
JSON_SUM(json, jsonpath)
```

**パラメータ**

* **json** 計算対象の JSON ドキュメント。
* **jsonpath** ノードを選択するために使用する JSONPath。\[x]、\[2..]、\[..8]、または \[1..12] が利用できます。\[x] はすべてのノードを選択します。

**例**

```bash theme={null}
SELECT JSON_SUM('[1,2,3,4,5]', '$[x]');
-- Result: 15

SELECT JSON_SUM('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[x]');
-- Result: 15

SELECT JSON_SUM('{"test": {"data": [1,2,3,4,5]}}', '$.test.data[3..]');
-- Result: 9
```

## LEFT

指定された文字列の左から数えて、指定された数の文字を返します。

**構文**

```bash theme={null}
LEFT(character_expression , integer_expression)
```

**パラメータ**

* **character\_expression** 文字列式。
* **integer\_expression** character\_expression の左から数えて何文字を返すかを指定する正の整数。

**例**

```bash theme={null}
SELECT LEFT('1234567890', 3);
-- Result: '123'
```

## LEN

指定された文字列式の文字数を返します。

**構文**

```bash theme={null}
LEN(string_expression)
```

**パラメータ**

* **string\_expression** 文字列式。

**例**

```bash theme={null}
SELECT LEN('12345');
-- Result: 5
```

## LOCATE

文字列内の何文字目に部分文字列が現れるかを表す整数を返します。

**構文**

```bash theme={null}
LOCATE(substring,string)
```

**パラメータ**

* **substring** 大きい文字列の中で検索する部分文字列。
* **string** 部分文字列を検索する対象の大きい文字列。

**例**

```bash theme={null}
SELECT LOCATE('sample','XXXXXsampleXXXXX');
-- Result: 6
```

## LOWER

大文字の文字データを小文字に変換した文字列式を返します。

**構文**

```bash theme={null}
LOWER(character_expression)
```

**パラメータ**

* **character\_expression** 文字列式。

**例**

```bash theme={null}
SELECT LOWER('MIXED case');
-- Result: 'mixed case'
```

## LTRIM

先頭の空白を削除した文字列式を返します。

**構文**

```bash theme={null}
LTRIM(character_expression)
```

**パラメータ**

* **character\_expression** 文字列式。

**例**

```bash theme={null}
SELECT LTRIM('   trimmed');
-- Result: 'trimmed'
```

## MASK

文字列内の start\_index と end\_index の間にある文字を mask\_character で置き換えます。

**構文**

```bash theme={null}
MASK(string_expression, mask_character [, start_index [, end_index ]])
```

**パラメータ**

* **string\_expression** 検索対象の文字列式。
* **mask\_character** マスクに使用する文字。
* **start\_index** 文字列の先頭でマスクしない文字数（オプション）。デフォルトは 0 です。
* **end\_index** 文字列の末尾でマスクしない文字数（オプション）。デフォルトは 0 です。

**例**

```bash theme={null}
SELECT MASK('1234567890','*',);
-- Result: '**********'

SELECT MASK('1234567890','*', 4);
-- Result: '1234******'

SELECT MASK('1234567890','*', 4, 2);
-- Result: '1234****90'
```

## NCHAR

Unicode 標準で定義されている指定された整数コードに対応する Unicode 文字を返します。

**構文**

```bash theme={null}
NCHAR(integer_expression)
```

**パラメータ**

* **integer\_expression** 0 から 255 までの整数。

## OCTET\_LENGTH

式に含まれるバイト数を返します。

**構文**

```bash theme={null}
OCTET_LENGTH(character_expression)
```

**パラメータ**

* **character\_expression** 評価する文字のセット。

**例**

```bash theme={null}
SELECT OCTET_LENGTH('text') FROM Account LIMIT 1
-- Result: 4
```

## PATINDEX

式内でパターンが最初に出現する開始位置を返します。パターンが見つからない場合は 0 を返します。

**構文**

```bash theme={null}
PATINDEX(pattern, expression)
```

**パラメータ**

* **pattern** 検索する一連の文字を含む文字列式。ワイルドカード文字 % は式の先頭または末尾でのみ使用できます。
* **expression** パターンを検索する対象の式（通常はカラム）。

**例**

```bash theme={null}
SELECT PATINDEX('123%', '1234567890');
-- Result: 1

SELECT PATINDEX('%890', '1234567890');
-- Result: 8

SELECT PATINDEX('%456%', '1234567890');
-- Result: 4
```

## POSITION

文字列内で指定された式の開始位置を返します。

**構文**

```bash theme={null}
POSITION(expressionToFind IN expressionToSearch)
```

**パラメータ**

* **expressionToFind** 検索する文字列式。
* **expressionToSearch** 検索対象の文字列式（通常はカラム）。

**例**

```bash theme={null}
SELECT POSITION('456'\` \`IN '123456');
-- Result: 4

SELECT POSITION('x'\` \`IN '123456');
-- Result: 0
```

## QUOTENAME

指定された Unicode 文字列に必要な区切り文字を追加することで、有効な SQL Server 区切り識別子を返します。

**構文**

```bash theme={null}
QUOTENAME(character_string [, quote_character])
```

**パラメータ**

* **character\_string** Unicode 文字データの文字列。文字列は 128 文字に制限されています。128 文字を超える入力は null を返します。
* **quote\_character** 区切り文字として使用する 1 文字（オプション）。シングルクォート、左または右の角括弧、ダブルクォートのいずれかを指定できます。quote\_character が指定されていない場合は角括弧が使用されます。

**例**

```bash theme={null}
SELECT QUOTENAME('table_name');
-- Result: '[table_name]'

SELECT QUOTENAME('table_name', '"');
-- Result: '"table_name"'

SELECT QUOTENAME('table_name', '[');
-- Result: '[table_name]'
```

## REPLACE

ある文字列のすべての出現箇所を別の文字列で置き換えます。

**構文**

```bash theme={null}
REPLACE(string_expression, string_pattern, string_replacement)
```

**パラメータ**

* **string\_expression** 検索対象の文字列式。文字またはバイナリのデータ型を指定できます。
* **string\_pattern** 検索する部分文字列。空文字列は指定できません。
* **string\_replacement** 置換する文字列。

**例**

```bash theme={null}
SELECT REPLACE('1234567890', '456', '|');
-- Result: '123|7890'

SELECT REPLACE('123123123', '123', '.');
-- Result: '...'

SELECT REPLACE('1234567890', 'a', 'b');
-- Result: '1234567890'
```

## REPLICATE

指定された回数だけ文字列値を繰り返します。

**構文**

```bash theme={null}
REPLICATE(string_expression ,integer_expression)
```

**パラメータ**

* **string\_expression** 繰り返す文字列。
* **integer\_expression** 繰り返し回数。

**例**

```bash theme={null}
SELECT REPLACE('x', 5);
-- Result: 'xxxxx'
```

## REVERSE

文字列式を逆順にして返します。

**構文**

```bash theme={null}
REVERSE(string_expression)
```

**パラメータ**

* **string\_expression** 文字列。

**例**

```bash theme={null}
SELECT REVERSE('1234567890');
-- Result: '0987654321'
```

## RIGHT

指定された文字数で文字列の右部分を返します。

**構文**

```bash theme={null}
RIGHT ( character_expression , integer_expression )
```

**パラメータ**

* **character\_expression** 文字列式。
* **integer\_expression** 文字列式の何文字を返すかを指定する正の整数。

**例**

```bash theme={null}
SELECT RIGHT('1234567890', 3);
-- Result: '890'
```

## RTRIM

末尾の空白を削除した後の文字列式を返します。

**構文**

```bash theme={null}
RTRIM(character_expression)
```

**パラメータ**

* **character\_expression** 文字列式。

**例**

```bash theme={null}
SELECT RTRIM('trimmed   ');
-- Result: 'trimmed'
```

## SOUNDEX

文字列を発音したときの音に基づく 4 文字の Soundex コードを返します。

**構文**

```bash theme={null}
SOUNDEX(character_expression)
```

**パラメータ**

* **character\_expression** 文字データの英数字式。

**例**

```bash theme={null}
SELECT SOUNDEX('smith');
-- Result: 'S530'
```

## SPACE

スペースを繰り返した文字列を返します。

**構文**

```bash theme={null}
SPACE(repeatcount)
```

**パラメータ**

* **repeatcount** スペースの数。

**例**

```bash theme={null}
SELECT SPACE(5);
-- Result: '   '
```

## SPLIT

2 つの区切り文字の間にある文字列のセクションを返します。

**構文**

```bash theme={null}
SPLIT(string, delimiter, offset)
```

**パラメータ**

* **string** 分割する文字列。
* **delimiter** 文字列を分割する文字。
* **offset** 返す分割の番号。正の数は左からのオフセットとして、負の数は右からのオフセットとして扱われます。

**例**

```bash theme={null}
SELECT SPLIT('a/b/c/d', '/', 1);
-- Result: 'a'

SELECT SPLIT('a/b/c/d', '/', -2);
-- Result: 'c'
```

## STARTSWITH

character\_expression が character\_prefix で始まる場合は 1 を返し、それ以外の場合は 0 を返します。

**構文**

```bash theme={null}
STARTSWITH(character_expression, character_prefix)
```

**パラメータ**

* **character\_expression** 文字列式。
* **character\_prefix** 検索する文字列の接頭辞。

**例**

```bash theme={null}
SELECT STARTSWITH('0123456', '012');
-- Result: 1

SELECT STARTSWITH('0123456', '456');
-- Result: 0
```

## STR

数値データから変換された文字データを返します。例えば、STR(123.45, 6, 1) は 123.5 を返します。

**構文**

```bash theme={null}
STR(float_expression [ , integer_length [ , integer_decimal ] ])
```

**パラメータ**

* **float\_expression** 浮動小数点式。
* **length** 返す全体の長さ（オプション）。これには小数点、符号、数字、およびスペースが含まれます。デフォルトは 10 です。
* **decimal** 小数点の右側の桁数（オプション）。decimal は 16 以下である必要があります。

**例**

```bash theme={null}
SELECT STR('123.456');
-- Result: '123'

SELECT STR('123.456', 2);
-- Result: '**'

SELECT STR('123.456', 10, 2);
-- Result: '123.46'
```

## STUFF

ある文字列を別の文字列に挿入します。最初の文字列の開始位置から指定された文字数を削除し、その開始位置に 2 番目の文字列を挿入します。

**構文**

```bash theme={null}
STUFF(character_expression , integer_start , integer_length , replaceWith_expression)
```

**パラメータ**

* **character\_expression** 文字列式。
* **start** 削除と挿入を開始する位置を指定する整数値。start または length が負の場合は null が返されます。start が変更対象の文字列 character\_expression よりも長い場合は null が返されます。
* **length** 削除する文字数を指定する整数。length が character\_expression よりも長い場合、削除は replaceWith\_expression の最後の文字まで行われます。
* **replaceWith\_expression** start 値から開始して character\_expression の length 文字を置き換える文字データの式。

**例**

```bash theme={null}
SELECT STUFF('1234567890', 3, 2, 'xx');
-- Result: '12xx567890'
```

## SUBSTRING

指定された長さの文字列の一部を返します。指定されたインデックスから開始します。

**構文**

```bash theme={null}
SUBSTRING(string_value FROM start FOR length)
```

**パラメータ**

* **string\_value** 文字列。
* **start** 返す文字の開始インデックスを指定する正の整数。
* **length** オプション。返す文字数を指定する正の整数。

**例**

```bash theme={null}
SELECT SUBSTRING('1234567890' FROM 3 FOR 2);
-- Result: '34'

SELECT SUBSTRING('1234567890' FROM 3);
-- Result: '34567890'
```

## TOSTRING

このインスタンスの値を、それと等価な文字列表現に変換します。

**構文**

```bash theme={null}
TOSTRING(string_value1)
```

**パラメータ**

* **string\_value1** 変換する文字列。

**例**

```bash theme={null}
SELECT TOSTRING(123);
-- Result: '123'

SELECT TOSTRING(123.456);
-- Result: '123.456'

SELECT TOSTRING(null);
-- Result: ''
```

## TRIM

先頭または末尾の空白を削除した文字列式を返します。

**構文**

```bash theme={null}
TRIM(trimspec trimchar FROM string_value)
```

**パラメータ**

* **trimspec** オプション。指定する場合は、キーワード **BOTH**、**LEADING**、**TRAILING** のいずれかである必要があります。
* **trimchar** オプション。指定する場合は 1 文字の文字列値である必要があります。
* **string\_value** トリミングする文字列値。

**例**

```bash theme={null}
SELECT TRIM('   trimmed   ');
-- Result: 'trimmed'

SELECT TRIM(LEADING FROM '   trimmed   ');
-- Result: 'trimmed   '

SELECT TRIM('-'\` \`FROM '-----trimmed-----');
-- Result: 'trimmed'

SELECT TRIM(BOTH '-'\` \`FROM '-----trimmed-----');
-- Result: 'trimmed'

SELECT TRIM(TRAILING '-'\` \`FROM '-----trimmed-----');
-- Result: '-----trimmed'
```

## UNICODE

入力式の最初の文字について、Unicode 標準で定義されている整数値を返します。

**構文**

```bash theme={null}
UNICODE(ncharacter_expression)
```

**パラメータ**

* **ncharacter\_expression** Unicode 文字列式。

## UPPER

小文字の文字データを大文字に変換した文字列式を返します。

**構文**

```bash theme={null}
UPPER(character_expression)
```

**パラメータ**

* **character\_expression** 文字列式。

**例**

```bash theme={null}
SELECT UPPER('MIXED case');
-- Result: 'MIXED CASE'
```

## XML\_EXTRACT

指定された XPath を使用して XML ドキュメントを抽出し、XML をフラット化します。デフォルトでは出力の区切り文字としてカンマが使用されますが、3 番目のパラメータを指定することで変更できます。

**構文**

```bash theme={null}
XML_EXTRACT(xml, xpath [, separator])
```

**パラメータ**

* **xml** 抽出する XML ドキュメント。
* **xpath** ノードを選択するために使用する XPath。選択されたノードはトークン区切りのリストで返されます。
* **separator** フラット化されたレスポンス内の項目を区切るために使用するトークン（オプション）。指定されない場合、区切り文字はカンマになります。

**例**

```bash theme={null}
SELECT XML_EXTRACT('<vowels><ch>a</ch><ch>e</ch><ch>i</ch><ch>o</ch><ch>u</ch></vowels>', '/vowels/ch');
-- Result: 'a,e,i,o,u'

SELECT XML_EXTRACT('<vowels><ch>a</ch><ch>e</ch><ch>i</ch><ch>o</ch><ch>u</ch></vowels>', '/vowels/ch', ';');
-- Result: 'a;e;i;o;u'
```
