データ型に関する考慮事項 - Amazon Athena

データ型に関する考慮事項

サイズ制限

サイズ制限を指定しないデータ型については、単一の行内にあるすべてのデータに対して 32MB という実用的制限が設定されていることに注意してください。詳細については、「Amazon Athena での SQL クエリに関する考慮事項と制約事項」の Row or column size limitation を参照してください。

CHAR と VARCHAR

CHAR(n) 値には、常に n の文字数があります。たとえば、CHAR(7) に「abc」をキャストすると、末尾に 4 つのスペースが追加されます。

CHAR 値の比較には、先頭と末尾のスペースが含まれます。

CHAR または VARCHAR に長さが指定されている場合、文字列は読み取り時に指定された長さで切り捨てられます。基盤となるデータ文字列がそれより長い場合、基盤となるデータ文字列はそのまま変更されません。

CHAR または VARCHAR で一重引用符をエスケープするには、追加の一重引用符を使用します。

DML クエリ内の文字列に文字列以外のデータ型をキャストするには、VARCHAR データ型にキャストします。

substr 関数を使用して CHAR データ型から指定された長さの従属文字列を返すには、まず CHAR 値を VARCHAR としてキャストする必要があります。以下の例では、col1CHAR データ型を使用します。

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

DECIMAL

特定の 10 進値を含む行を選択する場合など、SELECT クエリのリテラルとして 10 進値を指定するには、以下の例にあるように、クエリ内で DECIMAL 型を指定し、一重引用符内のリテラルとして 10 進値をリストすることができます。

SELECT * FROM my_table WHERE decimal_value = DECIMAL '0.12'
SELECT DECIMAL '44.6' + DECIMAL '77.2'