在Google Big Query中查询中文字符(utf-8)

时间:2014-07-13 10:08:46

标签: sql google-bigquery

我想从我的Google数据集中查询包含中文字符的标题(例如:数学),我尝试了很多方法如下。

Google大查询只有LENGTH()函数,并且它没有使用DATALENGTH()来比较长度和数据的差异。

然后,我尝试使用REGEXP_MATCH()' [\ u4e00- \ u9fa5]'匹配汉字,但它也不起作用。

我无法弄清楚是否有其他方法可以解决这个问题。 请帮忙,谢谢。

1 个答案:

答案 0 :(得分:3)

BigQuery的LENGTH函数目前有一个错误,它会返回不符合ASCII编码范围的字符的错误STRING长度:https://code.google.com/p/google-bigquery/issues/detail?id=109

可能的解决方法:如果您只需要准确的LENGTH计数,则可以使用REGEXP_REPLACE函数将字符转换为随机ASCII字符(例如' _'),并计算:

SELECT '數學', 
        LENGTH(REGEXP_REPLACE('數學', r'.', '_')) as correct, 
        LENGTH('數學') as incorrect;