BigQuery - 查找unicode字符

时间:2017-04-18 21:16:09

标签: unicode google-bigquery

我希望构建一个查询,查找在给定列中包含unicode字符的记录。

我尝试了

的变体
SELECT col 
FROM [project:dataset.table] 
where (REGEXP_MATCH(path,r"[\u0020-\u007E]"))

似乎无法获得正则表达式的正确语法。这个特殊的一个给出了错误:

  

无法解析正则表达式" [\ u0020- \ u007E]":无效的转义序列:\ u

阅读here这似乎意味着双引号应该能够启用unicode转义。显然不是。

建议?

编辑:

数据(大致)是

的形式
  • 时间戳
  • 记录ID
  • array [
    • 数据分数a
    • 数据分数b]

想象一下,我想找到任何 数据分数a 包含unicode字符的记录。这有什么意义吗?

1 个答案:

答案 0 :(得分:3)

尝试以下 - for / with BigQuery Standard SQL

  
#standardSQL
SELECT col 
FROM `project.dataset.table` 
WHERE REGEXP_CONTAINS(path, '''[\u0020-\u007E]''')  
  

想象一下,我想找到任何数据分数a包含unicode字符的记录。

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 1 AS col, ['ab!"#$%&()*+,-./', 'cd!"#$%&()*+,-./'] AS path UNION ALL
  SELECT 2, ['12,3', '456', '789'] UNION ALL
  SELECT 3, ['abc']
)
SELECT *
FROM `project.dataset.table` 
WHERE (
  SELECT COUNTIF(REGEXP_CONTAINS(path, '''[\u0020-\u0030]''')) 
  FROM UNNEST(path) AS path 
) > 0