Wie implementiert man "wie" in BigQuery?

8

Ich versuche eine einfache Abfrage auszuführen, die eine Einschränkung von like% in BigQuery vornimmt, aber LIKE ist nicht in ihrer Syntax, also wie kann es implementiert werden?

    
Lengoman 11.10.2012, 01:38
quelle

4 Antworten

12

Sie können die Funktion REGEXP_MATCH verwenden (siehe die Query-Referenz Seite ): REGEXP_MATCH ('str', 'reg_exp')

Anstatt die von LIKE verwendete% -Syntax zu verwenden, sollten Sie reguläre Ausdrücke verwenden (ausführliche Syntaxdefinition hier )

    
Jordan Tigani 11.10.2012, 01:45
quelle
7

LIKE wird offiziell in BigQuery Standard SQL unterstützt - Ссылка

Und ich denke, es funktioniert auch in Legacy SQL!

    
Mikhail Berlyant 21.07.2016 00:28
quelle
4

REGEXP_MATCH gibt true zurück, wenn str mit dem regulären Ausdruck übereinstimmt. Verwenden Sie CONTAINS anstelle von REGEXP_MATCH für Zeichenfolgenabgleich ohne reguläre Ausdrücke.

Ссылка

    
Jipo 28.04.2013 19:33
quelle
0

REGEXP_MATCH ist großartig, wenn Sie wissen, wie man es benutzt, aber für diejenigen, die nicht sicher sind, dass es keine gebräuchlichen Sonderzeichen wie '.', '$' oder '?' In der Suchzeichenfolge können Sie LEFT('str', numeric_expr) oder RIGHT('str', numeric_expr) verwenden. dh wenn Sie eine Namensliste hatten und alle, die LIKE 'sa%' sind, zurückgeben wollten Sie würden verwenden:

select name from list where LEFT(name,2)='sa'; (wobei 2 die Länge von 'sa' ist)

Wenn Sie darüber hinaus sagen möchten, wo die Werte einer Spalte wie die eines anderen sind, können Sie die 2 für LENGTH(column_with_lookup_strings) und ='sa' für =column_with_lookup_strings auslagern, sodass etwas wie folgt aussieht:

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

Ссылка

    
tomb 20.07.2016 23:25
quelle

Tags und Links