我试图在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")
不再工作......
任何帮助???我希望任何专家都能帮助我!
最好的问候,
阿尔伯特
答案 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