sql - 如何在 BigQuery 中使用 SELECT FROM VALUES 编写 MERGE 查询?
问题描述
我想MERGE
使用数据库中的文字值编写查询BigQuery
。我试过这个:https ://stackoverflow.com/a/35659674/5659025 (SQL Server 版本)但 BigQuery 返回错误:“找不到表值函数”
是否有可能进入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`
我希望它有所帮助。
推荐阅读
- spring-boot - Spring + SpringSecurity - 未调用AuthenticationEntryPoint
- java - 使用 Java EE 依赖项在 Spring 中创建名为“entityManagerFactory”的 bean 时出错
- javascript - 引用一个全局变量,而封装的变量可用
- c++ - 在 natvis 中使用 std::type_info 进行强制转换
- kotlin-native - 如何为 Kotlin/Native 启用“宽松”内存模型模式?
- java - 以编程方式将地图片段添加到容器将其添加到底部
- c# - 我正在尝试使用统一制作游戏,但我的 Jump 功能不起作用
- python - Python-ValueError:环境变量超过 32767 个字符
- javascript - 将 json 一行解析为 html
- python - 填充新数据框的单元格,而不会丢失前一个数据框的某些列