AWS Athena提取JSON数组首个值报错,求解决方法
解决AWS Athena提取JSON数组第一个元素的报错问题
报错原因
你遇到的SYNTAX_ERROR是因为SQL解析器将$[0]识别成了列名,而非JSON路径字符串——JSON路径参数必须以字符串常量的形式传入,也就是要用引号包裹。
正确提取方法
根据需求选择以下任一写法:
- 提取带引号的JSON值
SELECT json_extract(input, '$[0]') AS id FROM your_table_name;
执行后会返回 "14587979"。
- 直接提取无引号的标量值(推荐)
使用json_extract_scalar可以直接获取纯值,无需额外处理引号:
SELECT json_extract_scalar(input, '$[0]') AS id FROM your_table_name;
执行后会返回 14587979。
- 提取并转换为数值类型
如果需要将结果转为整数类型,可搭配cast函数:
SELECT CAST(json_extract_scalar(input, '$[0]') AS BIGINT) AS id FROM your_table_name;
内容的提问来源于stack exchange,提问作者Viviane Alves Lima
相关产品推荐
相关产品推荐

