在标准SQL中,可以使用UNNEST
和CAST
函数将字符串数组转换为float64。下面是一个示例代码:
WITH data AS (
SELECT ['1.23', '4.56', '7.89'] AS string_array
)
SELECT CAST(value AS float64) AS float_value
FROM data, UNNEST(string_array) AS value;
在上面的示例中,data
子查询创建了一个包含字符串数组的临时表。然后,使用UNNEST
函数将字符串数组展开为单独的行,并使用CAST
函数将每个字符串值转换为float64类型。最后,从结果中选择转换后的float64值。
请注意,这个示例假设输入的字符串数组中的每个元素都可以被正确转换为float64类型。如果字符串数组包含无法转换的值,将会引发错误。为了处理潜在的错误,可以使用TRY_CAST
函数来尝试转换,并在无法转换的情况下返回NULL值。
以下是使用TRY_CAST
函数的示例代码:
WITH data AS (
SELECT ['1.23', 'abc', '7.89'] AS string_array
)
SELECT TRY_CAST(value AS float64) AS float_value
FROM data, UNNEST(string_array) AS value;
在上面的示例中,字符串数组中的第二个元素'abc'
无法转换为float64类型,因此TRY_CAST
函数返回了NULL值。