我有3个表具有完全相同的模式,我想将它们联合/加入/合并到一个大表中并将其保存为组合表。
在3个表中的每个表中都是包含字符串的同一列。此列中的字符串前缀为“'”,我想删除它。
我将此字符连接到excel中的字符串,以克服excel应用于它的科学记数法。由于我已将该列定义为我的BigQuery架构中的字符串,因此我不再需要它并希望将其删除。
SQL或它之类的东西不是我的东西(还有!),有人可以告诉我如何在BigQuery中做到这一点吗?
我相信我可以在列上执行LTRIM以从字符串的开头删除“'”,但我不知道如何将它与union部分一起拼凑出来。
答案 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功能