Google BigQuery:如何使用 SQL 创建新列

新手上路,请多包涵

我想在不使用旧版 SQL 的情况下将一列添加到已经存在的表中。

基本的 SQL 语法是:

 ALTER TABLE table_name
ADD column_name datatype;

我为 Google BigQuery 格式化了查询:

 ALTER TABLE `projectID.datasetID.fooTable`
ADD (barColumn date);

但是这个错误的语法不正确:

 Error: Syntax error: Expected "." or keyword SET but got identifier "ADD" at [1:63]

那么如何为 Google BigQuery 正确格式化 SQL?

原文由 scre_www 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

根据 BigQuery 发行说明,对 ALTER TABLE ADD COLUMN 的支持已于 2020 年 10 月 14 日发布。

因此,最初提出的声明现在应该只需进行最少的修改:

 ALTER TABLE `projectID.datasetID.fooTable`
ADD COLUMN barColumn DATE;

原文由 Jeff Klukas 发布,翻译遵循 CC BY-SA 4.0 许可协议

我的旧表

a,b,c

1,2,3

2,3,4

 CREATE TABLE IF NOT EXISTS my_dataset.my_new_table
AS
SELECT a,b,c,
"my_string" AS d, current_timestamp() as timestamp
FROM my_dataset.my_old_table

我的新表

a,b,c,d,时间戳

1,2,3,my_string,2020-04-22 17:09:42.987987 UTC

2,3,4,my_string,2020-04-22 17:09:42.987987 UTC

架构:

一:整数

b:整数

c:整数

d:字符串

时间戳:时间戳

我希望一切都清楚:) 有了这个,您可以轻松地将新列添加到现有表中,并指定数据类型。之后,如有必要,您可以删除旧表。 :)

原文由 Tycho 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进