数据类型的注意事项
大小限制
对于没有指定大小限制的数据类型,请记住,对于单行中的所有数据,实际限制为 32MB。有关更多信息,请参阅Amazon Athena 中 SQL 查询的注意事项和限制中的Row or column size limitation。
CHAR 和 VARCHAR
CHAR(
值始终具有 n
)
个字符数。例如,若将 'abc' 强制转换为 n
CHAR(7)
,则会添加 4 个尾随空格。
对 CHAR
值的比较包括前导空格和尾随空格。
如果指定了 CHAR
或 VARCHAR
的长度,则读取字符串时,字符串将按指定长度进行截断。如果底层数据字符串较长,则底层数据字符串将保持不变。
要对 CHAR
或 VARCHAR
中的单引号进行转义,请额外使用一个单引号。
要在 DML 查询中将非字符串数据类型转换为字符串,请强制转换为 VARCHAR
数据类型。
要使用 substr
函数从 CHAR
数据类型返回指定长度的子字符串,就必须先将 CHAR
值强制转换为 VARCHAR
。在以下示例中,col1
使用了 CHAR
数据类型。
substr(CAST(col1 AS VARCHAR), 1, 4)
DECIMAL
要在 SELECT
查询中将十进制值指定为文字(例如选择具有特定十进制值的行时),您可以指定 DECIMAL
类型,并在查询中将该十进制值列为单引号中的文字,如下例所示:
SELECT * FROM my_table WHERE decimal_value = DECIMAL '0.12'
SELECT DECIMAL '44.6' + DECIMAL '77.2'