我正在尝试运行一个简单的查询,在BigQuery中限制 like % ,但 LIKE 不在它们的语法中,那么如何实现呢?
4 回答
BigQuery 标准 SQL 正式支持 LIKE - https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#comparison_operators
而且我认为它也适用于 Legacy SQL!
如果 str 匹配正则表达式,则 REGEXP_MATCH 返回 true。对于没有正则表达式的字符串匹配,使用 CONTAINS 而不是 REGEXP_MATCH。
https://developers.google.com/bigquery/docs/query-reference#stringfunctions
如果您知道如何使用 REGEXP_MATCH,它会很棒,但对于那些不确定是否有任何常用的特殊字符(例如“.”、“$”或“?”)的人来说。在查找字符串中,您可以使用LEFT('str', numeric_expr)
或RIGHT('str', numeric_expr)
。即,如果您有一个名称列表并希望返回所有您将使用的 LIKE 'sa%' 的名称:
select name from list where LEFT(name,2)='sa';
(其中 2 是 'sa' 的长度)
此外,如果您想说明一列的值与另一列的值在哪里,您可以将 2 换成LENGTH(column_with_lookup_strings)
和='sa'
for =column_with_lookup_strings
,使其看起来像这样:
select name from list where LEFT(name,LENGTH(column_with_lookup_strings))= column_with_lookup_strings;