在 BigQuery 中正确使用 COALESCE()
Posted
技术标签:
【中文标题】在 BigQuery 中正确使用 COALESCE()【英文标题】:Correct use of COALESCE() in BigQuery 【发布时间】:2020-01-13 11:47:14 【问题描述】:我正在运行以下脚本:
select COALESCE(test1,test2,test3)
from (select null as test1,'' as test2,'fdsda' as test3)
并收到以下错误:
对于参数类型的函数 COALESCE 没有匹配的签名:INT64, 字符串,字符串。支持的签名:COALESCE([ANY, ...]) at [1:8]
知道这个错误的原因吗?
【问题讨论】:
【参考方案1】:使用COALESCE
时,您必须提供相同类型的参数。
例如,如果第一个参数是 STRING,那么其他参数也应该是 STRING。
在您的情况下,您尝试提供 INTEGER 作为第一个参数,并为其他参数提供 STRING。
希望对你有帮助
【讨论】:
很高兴知道 NULL 是一个 int 类型 :)【参考方案2】:使用
select COALESCE(test1,test2,test3) from (select cast(null as string) as test1,'' as test2,'fdsda' as test3)
无论如何,我同意 rmesteves - 合并中的不同类型没有意义。
【讨论】:
以上是关于在 BigQuery 中正确使用 COALESCE()的主要内容,如果未能解决你的问题,请参考以下文章
BigQuery:Coalesce 将 TIMESTAMP 转换为 INTEGER
带有 SELECT 子查询的 BigQuery COALESCE()
如何在 bigquery 中使用带有 JSON EXTRACT 的正则表达式