我正在将一些聚合查询从Postgres转换为BigQuery中的新架构。 BigQuery中是否有等效的COALESCE()?
目前,我正在转换像
这样的Postgres查询语句coalesce(column1,'DEFAULT')
到
CASE
WHEN column1 IS NOT NULL
THEN column1
ELSE 'DEFAULT'
END AS column1
这看起来很容易。
但是,使用嵌套的合并语句(如
)转换Postgres查询语句 count(distinct coalesce(
coalesce(
coalesce(column1,column2),
column3),
column4)))
如果我在整个地方使用CASE
语句会更加混乱,而且看起来也错了。
BigQuery是否有一个与COALESCE()
等效的方法,或者我是否坚持编写整个CASE
语句等效语句?
答案 0 :(得分:13)
你可以在BigQuery中使用IFNULL函数,它可以嵌套:
select ifnull(column1,
ifnull(column2,'DEFAULT'))
from
(select string(NULL) as column1, 'y' as column2)
P.S。但是在BigQuery中省略COALESCE是一种疏忽,我会修复它。
更新:截至2015年4月16日,COALESCE可在BigQuery中使用。