Ich kann nicht auf einen SELECT
Alias in BigQuery verweisen (Standardmodus).BigQuery Wählen Sie Alias mit regex_extract_all im Standardmodus
Der Versuch, diese Abfrage zu tun:
SELECT
REGEXP_EXTRACT_ALL(text,
r"(<div \w+>)") AS matches
FROM
regex.test
WHERE
matches IS NOT NULL
Hier sind Schritte zu reproduzieren.
bq mk regex
bq mk -t regex.test id:integer,text:string
echo '{"id":1, "text":"<div a>"}' | bq insert regex.test
echo '{"id":2, "text":"<div b>"}' | bq insert regex.test
echo '{"id":3, "text":"<div>"}' | bq insert regex.test
bq query --use_legacy_sql=false "select REGEXP_EXTRACT_ALL(text, r\"(<div \w+>)\") AS matches FROM regex.test WHERE id IS NOT NULL"
+--------------+
| matches |
+--------------+
| [u'<div b>'] |
| [] |
| [u'<div a>'] |
+--------------+
Wenn ich versuche, die matches
alias zu verweisen, sehe ich einen Fehler:
bq query --use_legacy_sql=false "select REGEXP_EXTRACT_ALL(text, r\"(<div \w+>)\") AS matches FROM regex.test WHERE matches IS NOT NULL"
Error in query string: Error processing job 'myname': Unrecognized name:
matches
Ich bin nicht in der Lage des Alias matches
, zu verweisen und bin nicht in der Lage, diese Ergebnisse WHERE matches IS NOT NULL
zu filtern.
Weiß jemand, was ich hier falsch mache?
Danke!
Dank! Das hat funktioniert. Ich habe gerade den Teil für 'ARRAY_LENGTH' hinzugefügt (https://cloud.google.com/bigquery/sql-reference/functions-and-operators#array_length) –