

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 字串函數
<a name="s3-select-sql-reference-string"></a>

**重要**  
Amazon S3 Select 不再提供給新客戶。Amazon S3 Select 的現有客戶可以繼續照常使用此功能。[進一步了解](https://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/) 

Amazon S3 Select 支援下列字串函數。

**Topics**
+ [CHAR\$1LENGTH, CHARACTER\$1LENGTH](#s3-select-sql-reference-char-length)
+ [LOWER](#s3-select-sql-reference-lower)
+ [SUBSTRING](#s3-select-sql-reference-substring)
+ [TRIM](#s3-select-sql-reference-trim)
+ [UPPER](#s3-select-sql-reference-upper)

## CHAR\$1LENGTH, CHARACTER\$1LENGTH
<a name="s3-select-sql-reference-char-length"></a>

`CHAR_LENGTH` (或 `CHARACTER_LENGTH`) 計數指定字串內的字元數。

**注意**  
`CHAR_LENGTH` 和 `CHARACTER_LENGTH` 為同義詞。

### 語法
<a name="s3-select-sql-reference-char-length-syntax"></a>

```
CHAR_LENGTH ( string )
```

### Parameters
<a name="s3-select-sql-reference-char-length-parameters"></a>

 *`string`*   
該函數對其運作的目標字串。

### 範例
<a name="s3-select-sql-reference-char-length-examples"></a>

```
CHAR_LENGTH('')          -- 0
CHAR_LENGTH('abcdefg')   -- 7
```

## LOWER
<a name="s3-select-sql-reference-lower"></a>

考量到字串，`LOWER` 將所有大寫字元轉換為小寫字元。任何非大寫的字元則保持不變。

### 語法
<a name="s3-select-sql-reference-lower-syntax"></a>

```
LOWER ( string )
```

### Parameters
<a name="s3-select-sql-reference-lower-parameters"></a>

 **`string`**   
該函數對其運作的目標字串。

### 範例
<a name="s3-select-sql-reference-lower-examples"></a>

```
LOWER('AbCdEfG!@#$') -- 'abcdefg!@#$'
```

## SUBSTRING
<a name="s3-select-sql-reference-substring"></a>

考量到字串、開始索引，與選擇性地長度，`SUBSTRING` 傳回從開始索引到高達字串結尾，或高達提供長度的子字串。

**注意**  
輸入字串的第一種字元索引位置為 1。  
 如果 `start` < 1，沒有指定長度，則索引位置設定為 1。
 如果 `start` < 1，有指定長度，則索引位置設定為 `start + length -1`。
 如果`start + length -1` < 0，則會傳回一個空字串。
 如果 `start + length -1` > = 0，將被傳回從索引位置 1 開始的子字串，長度為 `start + length - 1`。

### 語法
<a name="s3-select-sql-reference-substring-syntax"></a>

```
SUBSTRING( string FROM start [ FOR length ] )
```

### Parameters
<a name="s3-select-sql-reference-substring-parameters"></a>

 **`string`**   
該函數對其運作的目標字串。

 **`start`**   
字串的開始位置。

 **`length`**   
要傳回的子字串長度。如果不存在，請移至字串結尾。

### 範例
<a name="s3-select-sql-reference-substring-examples"></a>

```
SUBSTRING("123456789", 0)      -- "123456789"
SUBSTRING("123456789", 1)      -- "123456789"
SUBSTRING("123456789", 2)      -- "23456789"
SUBSTRING("123456789", -4)     -- "123456789"
SUBSTRING("123456789", 0, 999) -- "123456789" 
SUBSTRING("123456789", 1, 5)   -- "12345"
```

## TRIM
<a name="s3-select-sql-reference-trim"></a>

從字串裁剪字首或字尾字元。要移除的預設字元是空間 (`' '`)。

### 語法
<a name="s3-select-sql-reference-trim-syntax"></a>

```
TRIM ( [[LEADING | TRAILING | BOTH remove_chars] FROM] string )
```

### Parameters
<a name="s3-select-sql-reference-trim-parameters"></a>

 **`string`**   
該函數對其運作的目標字串。

 `LEADING` \$1 `TRAILING` \$1 `BOTH`   
此參數表示裁剪的是字首或字尾字元，或字首和字尾字元兩者。

 **`remove_chars`**   
要移除的一組字元。`remove_chars` 可以是長度 > 1 的字串。此函數會從遭移除之字串的開始或結束時找到的 `remove_chars` 傳回含任何字元的字串。

### 範例
<a name="s3-select-sql-reference-trim-examples"></a>

```
TRIM('       foobar         ')               -- 'foobar'
TRIM('      \tfoobar\t         ')            -- '\tfoobar\t'
TRIM(LEADING FROM '       foobar         ')  -- 'foobar         '
TRIM(TRAILING FROM '       foobar         ') -- '       foobar'
TRIM(BOTH FROM '       foobar         ')     -- 'foobar'
TRIM(BOTH '12' FROM '1112211foobar22211122') -- 'foobar'
```

## UPPER
<a name="s3-select-sql-reference-upper"></a>

考量到字串，`UPPER` 將所有小寫字元轉換為大寫字元。任何非小寫的字元則保持不變。

### 語法
<a name="s3-select-sql-reference-upper-syntax"></a>

```
UPPER ( string )
```

### Parameters
<a name="s3-select-sql-reference-upper-parameters"></a>

 **`string`**   
該函數對其運作的目標字串。

### 範例
<a name="s3-select-sql-reference-upper-examples"></a>

```
UPPER('AbCdEfG!@#$') -- 'ABCDEFG!@#$'
```