将“SELECT IF”与另一个数据集一起使用

时间:2014-04-15 10:24:38

标签: select if-statement google-bigquery

我试图在BigQuery中执行此查询。

我有一个表1和一个表2.我想做这样的事情:

如果(选择具有特定标准的表2)返回> 0记录,

   then perform this select on table 1 (select one), 

否则,在表1上执行另一个选择(选择2)。

我可以做类似的事情:

SELECT IF (1=1,"YES", "NO"), but, when I replace 1=1 with my select, like this:

SELECT IF ((SELECT count(*) FROM Table1)>0,"YES", "NO")

不再工作......

任何帮助???我希望任何专家都能帮助我!

最好的问候,

阿尔伯特

1 个答案:

答案 0 :(得分:3)

你不能像那样嵌套select语句。需要发生的是你的内部选择必须是子查询和别名 类似的东西:

SELECT 
    IF(inner_table.count_column > 0, "YES", "NO)  -- here we select the 'count_column' from 'inner_table
FROM   
(   
    (SELECT count(*) as count_column FROM table1) 
) as inner_table -- aliasing the inner select as 'inner_table'

希望这是有道理的。这就是它如何与bigquery一起工作,你需要将嵌套语句构造成子查询。 这里有一些阅读https://developers.google.com/bigquery/query-reference#from