用googlebigquery(标准sql)中变量2 sql的非缺失值替换变量1缺失的entires
我正在尝试创建一个名为STREET NAME的新用googlebigquery(标准sql)中变量2 sql的非缺失值替换变量1缺失的entires,sql,replace,null,Sql,Replace,Null,我正在尝试创建一个名为STREET NAME的新变量,该变量的值为ON_STREET_NAME(如果它是非空的),或者OFF_STREET_NAME(如果ON_STREET NAME是空的)。 我试着用 ifnull(on_street_name, off_street_name) and coalesce(on_street_name, off_street_name) 但似乎都不管用。有什么建议吗 好的,我能够试验不同的东西,发现这是可行的。使用null和空白空间的工作方式不同。这
变量
,该变量的值为ON_STREET_NAME(如果它是非空的)
,或者OFF_STREET_NAME(如果ON_STREET NAME是空的)
。
我试着用
ifnull(on_street_name, off_street_name)
and
coalesce(on_street_name, off_street_name)
但似乎都不管用。有什么建议吗
好的,我能够试验不同的东西,发现这是可行的。使用null和空白空间的工作方式不同。这是解决办法
coalesce(nullif(on_street_name,''),off_street_name) as street_name
它的工作原理很神奇:)街道名称的
列中是否有空格,使该列看起来是空的?您使用的是哪一个?“SQL”只是一种查询语言,而不是特定数据库产品的名称(在标准SQL中也没有“变量”这样的东西)。请为您正在使用的数据库产品添加一个标记,postgresql
,oracle
,sql server
,db2
,…请阅读并接受您的逻辑(尤其是coalesce()
)是正确的。因此,要么您的整体查询不正确,要么数据不是您认为的数据。on_street_名称中没有空格。它只是缺少off_street_name列中存在的信息。