BigQuery相当于COALESCE()?

时间:2015-04-04 06:25:48

标签: google-bigquery

我正在将一些聚合查询从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语句等效语句?

1 个答案:

答案 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中使用。