【问题标题】:BigQuery Syntax ErrorBigQuery 语法错误
【发布时间】:2015-02-20 20:35:14
【问题描述】:

我在 BigQuery 中收到此错误: 错误:语法错误:2:1 预期:查询结束但得到:“CASE”

我正在使用的查询是:

SELECT DISTINCT 

 CASE 
   WHEN
       t1.x<=t2.x 
   THEN 
       t1.x 
   ELSE
       t2.x 
 END id1, 

 CASE 
   WHEN
       t1.x<=t2.x 
   THEN 
       t2.x 
   ELSE 
       t1.x 
 END id2 

 FROM test1 t1 
 CROSS JOIN test1 t2 
 WHERE NOT t1.x = t2.x

在 mysql 中有效,但在 BigQuery 中无效。

【问题讨论】:

  • 如果你把“END id1”改成“END AS id1”,有什么变化吗?

标签: mysql google-bigquery


【解决方案1】:

我认为 Bigquery 不支持 SELECT DISTINCT。相反,使用子查询和group by:

SELECT id1, id2
FROM (SELECT (CASE WHEN t1.x <= t2.x THEN t1.x ELSE t2.x END) as id1, 
             (CASE WHEN t1.x <= t2.x THEN t2.x ELSE t1.x END) as id2 
      FROM test1 t1 CROSS JOIN
           test1 t2 
      WHERE NOT t1.x = t2.x
     ) t
GROUP BY id1, id2;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-05
    • 2023-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多