在将Oracle查询转换为大查询时,出现“语法错误:预期为“(”或关键字UNNEST但获得了标识符...”

时间:2019-08-14 12:04:24

标签: sql google-bigquery bigquery-standard-sql

我想将oracle查询转换为纯SQL查询。在oracle中,联接条件将通过以下方式完成:

Select col1,col2,col3 
from TABLE1,TABLE2
 WHERE TABLE1.COL IN TABLE2.COL2

当我将上面的代码转换为简单的SQL查询时:

Select col1,col2,col3
from TABLE1 INNER JOIN
     TABLE2
     ON TABLE1.COL IN TABLE2.COL2

我得到Syntax error: Expected "(" or keyword UNNEST but got identifier "TABLE2"

2 个答案:

答案 0 :(得分:0)

您应该使用=而不是IN ..
IN子句require()

  Select col1,col2,col3 
  from TABLE1 
  INNER JOIN TABLE2 ON TABLE1.COL = TABLE2.COL2

答案 1 :(得分:0)

如果col2是一个数组,则可以使用:

SELECT col1, col2, col3
FROM TABLE2 t2 CROSS JOIN
     UNNEST(t2.col2) as col2_element JOIN
     TABLE1 t1
     ON t1.COL = col2_element;