在 Google BigQuery 中将列合并/合并到一个新列中



有人提示我如何将四列的值放入Google BigQuery的新列中?标准 SQL 方言。不是遗产。如果我尝试连接(在选择语句中或作为子选择(

SELECT
Concat (visitId,fullVisitorId,visitNumber) as identifier,
...
FROM ...
SELECT     
(SELECT Concat(visitId,fullVisitorId,visitNumber) as identifier FROM ...),
...
FROM ...

我收到如下错误消息: Error: No matching signature for function CONCAT for argument types: INT64, STRING, INT64. Supported signatures: CONCAT(STRING, [STRING, ...]); CONCAT(BYTES, [BYTES, ...]) at [5:3]

如果有人可以帮助我,那就太好了。谢谢。

您是否尝试过在连接之前强制转换它们:

SELECT Concat(cast(visitId as string), cast(fullVisitorId as string), cast(visitNumber as string)) as identifier,

我不知道你想用结果做什么。 但是,将值放入数组或结构可能更有意义。 通常,不需要将值合并到字符串中,因为可以使用更复杂的类型。

代替 CONCAT(column1, column2, column3) ,您可以使用也连接列的||

SELECT column1 || column2 || column3
FROM example_table

另请参阅:
https://cloud.google.com/bigquery/docs/reference/standard-sql/operators#concatenation_operator

最新更新