首页 > 解决方案 > 如何在 BigQuery 中使用 SELECT FROM VALUES 编写 MERGE 查询?

问题描述

我想MERGE使用数据库中的文字值编写查询BigQuery。我试过这个:https ://stackoverflow.com/a/35659674/5659025 (SQL Server 版本)但 BigQuery 返回错误:“找不到表值函数”

是否有可能进入BigQuery以及如何进入?

标签: sqlmergegoogle-bigquery

解决方案


在我们在评论部分讨论之后,我可以建议你两个选择:

首先,使用INSERT语句。根据文档:

当您想向表中添加新行时,请使用 INSERT 语句。

因此,您修改源表中的行。我使用了一个虚拟数据来重现它。我的源数据库是:

在此处输入图像描述

在 BigQuery 界面中,语法如下:

insert `source_table` (email, content)
select "ale@gmail.com" as email, "add something" as content

或者

insert `source_table` (email, content)
select "ale@gmail.com" , "add something" 

请注意,我使用了双引号,因为我添加的字段是String。输出如下:

在此处输入图像描述

第二个选项是使用UNION ALL。我想指出,使用此选项,您不会更新或修改源表,而是创建一个添加了新数据的视图。语法如下:

SELECT 'aleee@gmail.com' , "add something 2" UNION ALL
--#if you want to add more rows to your view, you will need to write another 
--#select 'email@gmail.com.br', "something " UNION ALL
SELECT * FROM  `test-proj-261014.sample.foobar`

我希望它有所帮助。


推荐阅读