在 Google BigQuery 的一个新列中组合/连接列

Combine / Concat columns in one new column in Google BigQuery

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

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]

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

您是否尝试过在 concat 之前转换它们:

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