我要在Google大查询控制台上执行以下命令行查询。 它包含很多REGEXP 抛出错误
-bash:意外令牌'('
附近的语法错误bq query --use_legacy_sql=false select s1.ID., REGEXP_REPLACE(REGEXP_REPLACE(UPPER(s1.d),r'(\|/|\?|\-|&)', ""),r'\s+',"_") D, CAST(s1.F as INT64) F FROM `myproject.mydataset.mytable` s1 where regexp_contains(s1.f,r'^[+-]?[[:digit:]]+$') and exists ( select xyz from `myproject.mydataset.mytable` s2 where s1.d=s2.d)
我想在命令行中运行此查询。
查询
select s1.ID., REGEXP_REPLACE(REGEXP_REPLACE(UPPER(s1.d),r'(\|/|\?|\-|&)', ""),r'\s+',"_") D, CAST(s1.F as INT64) F FROM `myproject.mydataset.mytable` s1 where regexp_contains(s1.f,r'^[+-]?[[:digit:]]+$') and exists ( select xyz from `myproject.mydataset.mytable` s2 where s1.d=s2.d)
此查询在GUI GBQ中可以很好地执行
在命令行中执行此代码将对您有所帮助。
答案 0 :(得分:0)
粘贴长而复杂的文本时,终端可能会弄乱某些字符,我建议将查询另存为.sql文件,然后运行:
bq query `cat /path-to-file/test.sql`