データ型に関する考慮事項
サイズ制限
サイズ制限を指定しないデータ型については、単一の行内にあるすべてのデータに対して 32MB という実用的制限が設定されていることに注意してください。詳細については、「Amazon Athena での SQL クエリに関する考慮事項と制約事項」の Row or column size limitation を参照してください。
CHAR と VARCHAR
CHAR( 値には、常に n) の文字数があります。たとえば、nCHAR(7) に「abc」をキャストすると、末尾に 4 つのスペースが追加されます。
CHAR 値の比較には、先頭と末尾のスペースが含まれます。
CHAR または VARCHAR に長さが指定されている場合、文字列は読み取り時に指定された長さで切り捨てられます。基盤となるデータ文字列がそれより長い場合、基盤となるデータ文字列はそのまま変更されません。
CHAR または VARCHAR で一重引用符をエスケープするには、追加の一重引用符を使用します。
DML クエリ内の文字列に文字列以外のデータ型をキャストするには、VARCHAR データ型にキャストします。
substr 関数を使用して CHAR データ型から指定された長さの従属文字列を返すには、まず CHAR 値を VARCHAR としてキャストする必要があります。以下の例では、col1 が CHAR データ型を使用します。
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'