AWS Athena如何先校验列值是否为数值再执行乘法运算
在AWS Athena中实现转换失败时返回0的数值计算
在Athena中可以借助TRY_CAST和COALESCE组合实现需求,替代SQL Server的TRY_PARSE逻辑,具体SQL如下:
SELECT COALESCE(TRY_CAST(myColumn AS DECIMAL(11,2)), 0) * 3 FROM myDatabase.myTable;
关键函数说明:
TRY_CAST:尝试将varchar类型的myColumn转换为DECIMAL(11,2),遇到非数值内容(如'5/1/2020 AU')时不会抛出错误,而是返回NULLCOALESCE:取第一个非NULL的值,这里把转换失败返回的NULL替换为0,确保后续乘法计算正常执行
拓展处理空字符串场景
如果列中存在空字符串,可先通过NULLIF将空字符串转为NULL,再进行转换:
SELECT COALESCE(TRY_CAST(NULLIF(myColumn, '') AS DECIMAL(11,2)), 0) * 3 FROM myDatabase.myTable;
内容的提问来源于stack exchange,提问作者faujong
相关产品推荐
相关产品推荐

