Sql IFNULL和date

Sql IFNULL和date,sql,google-bigquery,Sql,Google Bigquery,我有下面的select语句 FIRST_VALUE(date) OVER (PARTITION BY client_ID ORDER BY date ASC),0) AS first_conversion_date, 如果没有可用的日期,我希望它返回一个字符串或整数 我试过这个例子: ifnull(FIRST_VALUE(date) OVER (PARTITION BY client_ID ORDER BY date ASC),0) AS first_conversion_date, 但出现

我有下面的select语句

FIRST_VALUE(date) OVER (PARTITION BY client_ID ORDER BY date ASC),0) AS first_conversion_date,
如果没有可用的日期,我希望它返回一个字符串或整数

我试过这个例子:

ifnull(FIRST_VALUE(date) OVER (PARTITION BY client_ID ORDER BY date ASC),0) AS first_conversion_date,
但出现以下错误:

参数类型:DATE,INT64的函数IFNULL没有匹配的签名。支持的签名:IFNULL(ANY,ANY)在[26:9]了解有关BigQuery SQL函数的更多信息。

我该怎么办

是否要
合并()


看起来您希望避免结果中出现空值

显然,在同一输出列中不能将日期类型与字符串或INT64混合使用 所以您需要将所有内容转换为字符串,如下面的示例所示

IFNULL(CAST(FIRST_VALUE(DATE) OVER (PARTITION BY client_ID ORDER BY DATE ASC) AS STRING), 'whatever default value you have in mind') AS first_conversion_date

也许这两个参数的类型必须相同?虽然它说ANY,ANY,也许它的意思是X,X,其中X是ANY,但是你必须使用相同的类型吗?或者至少是一种强制类型?我只是在猜测,别管我了。
IFNULL(CAST(FIRST_VALUE(DATE) OVER (PARTITION BY client_ID ORDER BY DATE ASC) AS STRING), 'whatever default value you have in mind') AS first_conversion_date