Bigquery: объединить две колонки - PullRequest
0 голосов
/ 13 марта 2019

Мне просто интересно, как мы можем объединить 2 поля в Bigquery.

Это мой SQL

SELECT
 cast(tbl.table_name as string) + '.' + cast(col.column_name as string)
FROM 
xy.INFORMATION_SCHEMA.TABLES tbl
INNER JOIN 
xy.INFORMATION_SCHEMA.COLUMNS col
ON tbl.table_name = col.table_name

Это ошибка, которую я получаю

Нет соответствующей сигнатуры для оператора + для типов аргументов: STRING, STRING. Поддерживаемые подписи: INT64 + INT64; FLOAT64 + FLOAT64; NUMERIC + NUMERIC при [3: 2]

Ответы [ 2 ]

1 голос
/ 13 марта 2019

Вы можете использовать concat, как определено в этой ссылке

Это SQL

SELECT
 CONCAT(cast(tbl.table_name as string), '.',cast(col.column_name as string))
FROM 
`dataset.INFORMATION_SCHEMA.TABLES` tbl
INNER JOIN 
`dataset.INFORMATION_SCHEMA.COLUMNS` col
ON tbl.table_name = col.table_name

Выход

+---------------------+
| fo_                 |
+---------------------+
| Table1.col          |
| Table1.col2         |
+---------------------+
0 голосов
/ 13 марта 2019

Для BigQuery Standard SQL

Вы можете просто использовать функцию CONCAT() без CAST строки для строки, как показано в примере ниже

CONCAT(tbl.table_name, '.', col.column_name)     

Еще одна опция - FORMAT()функция

FORMAT('%s.%s', tbl.table_name, col.column_name)   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...