我试图选择一个bigquery表,但我需要分配一个默认值的列,如果它是空的,因为在接下来的过程中,我需要默认或真实的item_id值,我试图使用CASE验证,但我不太确定是否我可以使用此子句用于此目的,我得到下一个错误:
Expected end of input but got keyword case.
Select
p.item_id CASE WHEN item_id IS NULL THEN 'XXXXX' ELSE item_id END AS item_id,
from items
where -- rest of the query
任何想法?
try this
Select
IFNULL(p.item_id,'XXXXX') AS item_id,
from items
where -- rest of the query
BigQuery中的IFNULL()
函数
IFNULL(expr, null_result)
如果expr为NULL,则返回null_result。否则,返回expr。如果expr不为NULL,则不计算null_result。
expr和null_result可以是任何类型,并且必须隐式强制转换为公共超类型。COALESCE(expr, null_result)的同义词。
详细信息:https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#ifnull
使用
isnull(yourcolumn,'')
--or
isnull(yourcolumn,99999999)
,你可以把任何东西放在引号之间。如果值是整型,那就行不通了。您需要为它设置一个默认数字,最好是永远不会使用的数字,如9999999999。