

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

# 資料類型的考量事項
<a name="data-types-considerations"></a>

## 大小限制
<a name="data-types-considerations-size"></a>

對於未指定大小限制的資料類型，請記住，單一資料列中所有資料的實際限制為 32MB。如需詳細資訊，請參閱 [在 Amazon Athena 中進行 SQL 查詢的考量事項與限制](other-notable-limitations.md) 中的 [Row or column size limitation](other-notable-limitations.md#sql-limitations-rowsize)。

## CHAR 和 VARCHAR
<a name="data-types-considerations-char"></a>

`CHAR({{n}})` 值的計數一律為 `{{n}}` 個字元。例如，如果您將 'abc' 轉換為 `CHAR(7)`，則會新增 4 個尾隨空格。

`CHAR` 值的比較包括前導和尾隨空格。

如果為 `CHAR` 或 `VARCHAR` 指定，讀取字串時，會以指定的長度進行截斷。如果基礎資料字串較長，則基礎資料字串會維持不變。

若要逸出 `CHAR` 或 `VARCHAR` 中的單引號，請使用額外的單引號。

若要將非字串資料類型轉換為 DML 查詢中的字串，請轉換為 `VARCHAR` 資料類型。

若要使用 `substr` 函式從 `CHAR` 資料類型傳回指定長度的子字串，您必須先將 `CHAR` 值轉換為 `VARCHAR`。在下列範例中，`col1` 使用 `CHAR` 資料類型。

```
substr(CAST(col1 AS VARCHAR), 1, 4)
```

## DECIMAL
<a name="data-types-considerations-decimal"></a>

若要在 `SELECT` 查詢中指定小數值為常值，例如以特定小數值選取資料列，可指定 `DECIMAL` 類型，並在查詢中以單引號列出小數值為常值，如下列範例所示。

```
SELECT * FROM my_table
WHERE decimal_value = DECIMAL '0.12'
```

```
SELECT DECIMAL '44.6' + DECIMAL '77.2'
```