谷歌大查询命令行执行复杂的查询给错误意外的'(

时间:2018-12-13 13:14:37

标签: bash google-bigquery syntax-error command-line-interface sh

我要在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中可以很好地执行

在命令行中执行此代码将对您有所帮助。

1 个答案:

答案 0 :(得分:0)

粘贴长而复杂的文本时,终端可能会弄乱某些字符,我建议将查询另存为.sql文件,然后运行:

bq query `cat /path-to-file/test.sql`