11

BigQueryで%のような制限を加えて単純なクエリを実行しようとしていますが、LIKEが構文に含​​まれていないので、どのように実装できますか?

4

4 に答える 4

17

REGEXP_MATCH関数を使用できます(クエリリファレンスページを参照):REGEXP_MATCH('str'、'reg_exp')

LIKEで使用される%構文を使用する代わりに、正規表現を使用する必要があります(詳細な構文定義はこちら) 。

于 2012-10-11T01:45:31.193 に答える
13

LIKEはBigQuery標準SQLで公式にサポートされています-https ://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#comparison_operators

また、レガシーSQLでも機能すると思います。

于 2016-07-21T00:28:55.727 に答える
6

strが正規表現に一致する場合、REGEXP_MATCHはtrueを返します。正規表現を使用しない文字列照合の場合は、REGEXP_MATCHの代わりにCONTAINSを使用します。

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

于 2013-04-28T19:33:11.803 に答える
1

REGEXP_MATCHは、使用方法を知っている場合に最適ですが、「。」、「$」、「?」などの一般的に使用される特殊文字がないかどうかわからない場合は、ルックアップ文字列では、LEFT('str', numeric_expr)またはを使用できますRIGHT('str', numeric_expr)。つまり、名前のリストがあり、「sa%」のような名前をすべて返したい場合は、次を使用します。

select name from list where LEFT(name,2)='sa';(2は「sa」の長さです)

さらに、ある列の値が別の列の値と似ている場所を言いたい場合は、2をとに交換して、次のようにすることができLENGTH(column_with_lookup_strings)ます='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

于 2016-07-20T23:25:51.210 に答える