【问题标题】:BigQuery - Concatenating String+EmptyString results in NULL valueBigQuery - 连接字符串 + 空字符串导致 NULL 值
【发布时间】:2020-01-22 04:45:48
【问题描述】:

我有两个字符串类型字段“Source”和“Detail”,其中任何一个都具有空值。现在我连接两个由连字符(-)分隔的字符串字段;但由于 NULL 值,输出也是 NULL。

参考由实际输出和预期输出组成的图像(以黄色突出显示)。

有人可以建议如何获得预期的输出吗?

我使用的查询:

SELECT Source, Detail, CONCAT(cast(Source as string), "-", cast(Detail as string)) AS actualoutput FROM tablename

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:
    SELECT Source, Detail, CONCAT(IFNULL(Source, ''), "-", IFNULL(Detail, '')) AS actualoutput 
    FROM tablename   
    

    注意:由于“Source”和“Detail”都已经是 STRING 类型 - 您可以省略 CAST'ing to STRING

    【讨论】:

      【解决方案2】:

      使用COALESCENULL 替换为空字符串:

      SELECT
          Source,
          Detail,
          CONCAT(COALESCE(Source, ''), '-', COALESCE(Detail, '')) AS actualoutput
      FROM tablename;
      

      请注意,与NULL 连接的任何内容都将始终产生NULL

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-10-07
        • 1970-01-01
        • 2022-10-02
        • 1970-01-01
        • 1970-01-01
        • 2011-12-06
        • 1970-01-01
        相关资源
        最近更新 更多