联合,修剪并保存为BigQuery中的新表

时间:2016-04-16 21:15:16

标签: google-bigquery

我有3个表具有完全相同的模式,我想将它们联合/加入/合并到一个大表中并将其保存为组合表。

在3个表中的每个表中都是包含字符串的同一列。此列中的字符串前缀为“'”,我想删除它。

我将此字符连接到excel中的字符串,以克服excel应用于它的科学记数法。由于我已将该列定义为我的BigQuery架构中的字符串,因此我不再需要它并希望将其删除。

SQL或它之类的东西不是我的东西(还有!),有人可以告诉我如何在BigQuery中做到这一点吗?

我相信我可以在列上执行LTRIM以从字符串的开头删除“'”,但我不知道如何将它与union部分一起拼凑出来。

1 个答案:

答案 0 :(得分:2)

应该像下面这样简单

SELECT 
  REGEXP_REPLACE(troubled_field, "^'", "") AS fixed_field, 
  second_field, 
  third_field
FROM table1, table2, table3

有关FROM clause的UNION ALL和Regular expression functions中的REGEXP_EXTRACT的更多信息,请参阅

顺便说一句,看看为什么我使用REGEXP_REPLACE vs LTRIM - 尝试下面

SELECT REGEXP_REPLACE("'''abc'def", "^'", ""), LTRIM("'''abc'def", "'")  

虽然

可能在你的特定情况下并不重要

更简单的版本可以

SELECT 
  SUBSTR(troubled_field, 2) AS fixed_field, 
  second_field, 
  third_field
FROM table1, table2, table3

注意:此版本假定该列中的所有值均以“'”开头 第一个版本(使用REGEXP_REPLACE)对此不太一致 - 如果某些值不以“'”开头,它们将不会被更改,而在第二个版本(使用SUBSTR),即使不是“第一个字符也将被删除” ““

详细了解SUBSTR功能

使用选项部分设置目的地表和其他属性
enter image description here