BigQuery 中未嵌套数组的字符串函数 SQL

String Functions on Unnested Arrays in BigQuery SQL

我正在尝试查找数组项之一包含值的所有行实例,忽略 Google BigQuery 中的大小写。

我能做到:

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

这很适合在 array_1.array_2.some_text 中查找 'AAA'。但我还想找到 'aaa''Aaa' 等等。

但这不起作用:

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

并且我不想重复 where 语句(为 'AaA''aaa' 等添加 where 条件)。

有没有办法在 BigQuery SQL 中的数组中的结构字段上应用 LOWER 之类的字符串函数?

谢谢

试试下面的方法

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)
)