代码之家  ›  专栏  ›  技术社区  ›  orcaman

BigQuery SQL中未列出数组上的字符串函数

  •  0
  • orcaman  · 技术社区  · 3 年前

    我试图查找其中一个数组项包含值的所有行实例,忽略Google BigQuery中的大小写。

    我能够做到这一点:

    SELECT
      COUNT(*)
    FROM
      `my_bq_project.my_bq_dataset.my_table`
    WHERE
      (
          'AAA' IN UNNEST(array_1.array_2.some_text)
      )
    

    这很适合查找 'AAA' 在…内 array_1.array_2.some_text .但我也想找到 'aaa' , 'Aaa' 等等

    但这不起作用:

    SELECT
      COUNT(*)
    FROM
      `my_bq_project.my_bq_dataset.my_table`
    WHERE
      (
          'AAA' IN UNNEST(LOWER(array_1.array_2.some_text))
      )
    

    'AaA' , “aaa” 等)。

    有没有一种方法可以应用字符串函数,比如 LOWER 在BigQuery SQL中数组中的结构字段上?

    谢谢

    0 回复  |  直到 3 年前
        1
  •  2
  •   Mikhail Berlyant    3 年前

    试试下面的方法

    SELECT
      COUNT(*)
    FROM
      `my_bq_project.my_bq_dataset.my_table`
    WHERE LOWER('AAA') IN (
      SELECT LOWER(some_text)
      FROM UNNEST(array_1) a, UNNEST(a.array_2)
    )