首页 > 解决方案 > Bigquery if 选择参考表的条件

问题描述

我有两个表:Table_A 和 Table_B 我还有一个参数 {{param.age}}

我想检查年龄,如果是 15 从 Table_A 中选择 *,否则从 table_B 中选择 *。

我想出了这个不起作用的解决方案:

SELECT
  CASE 3
    WHEN 3 THEN ( SELECT * FROM `Table_A`)
  ELSE
  (SELECT * FROM `Table_B`)
END

我收到此错误:标量子查询不能有超过一列...我确信有一个简单直接的解决方案,我找不到。

须藤代码:

If parameter = x
Then SELECT * FROM Table_A
Else SELECT * FROM Table_B

标签: sqlgoogle-bigquery

解决方案


假设两个查询具有相同的列,您可以执行以下操作:

select *
from table_A
where parameter = x
union all
select *
from table_B
where parameter <> x;

如果这两个表没有相同的列,我会质疑你想要做什么。SQL 查询返回一组固定的列。你想要哪些列?如果两个表之间有公共列,则显式选择它们。


推荐阅读