如何在BigQuery中实现“喜欢”?

时间:2012-10-11 01:38:30

标签: google-bigquery

我正在尝试运行一个简单的查询,在BigQuery中限制类似%,但LIKE不在语法中,那么如何实现呢?

4 个答案:

答案 0 :(得分:12)

您可以使用REGEXP_MATCH函数(请参阅查询参考page): REGEXP_MATCH('str','reg_exp')

不应使用LIKE使用的%语法,而应使用正则表达式(详细语法定义here

答案 1 :(得分:9)

在BigQuery Standard SQL中正式支持LIKE - https://cloud.google.com/bigquery/sql-reference/functions-and-operators#comparison-operators

我认为它也适用于旧版SQL!

答案 2 :(得分:5)

如果str与正则表达式匹配,则REGEXP_MATCH返回true。对于没有正则表达式的字符串匹配,请使用CONTAINS而不是REGEXP_MATCH。

https://developers.google.com/bigquery/docs/query-reference#stringfunctions

答案 3 :(得分:0)

REGEXP_MATCH非常棒,如果您知道如何使用它,但对于那些不确定不会有任何常用特殊字符的人来说,例如'。',&# 39; $'或'?'在查找字符串中,您可以使用LEFT('str', numeric_expr)RIGHT('str', numeric_expr)。 也就是说,如果你有一个名单,并想要归还所有那些喜欢的名字,那就是' sa%' 你使用:

select name from list where LEFT(name,2)='sa';(2为' sa')

的长度

此外,如果您想说一个列的值与其他列相似,则可以将LENGTH(column_with_lookup_strings)的{​​2}和='sa'换成=column_with_lookup_strings ,让它看起来像这样:

select name from list where LEFT(name,LENGTH(column_with_lookup_strings))= column_with_lookup_strings;

https://cloud.google.com/bigquery/query-reference