是否可以通过查询为我提供带有特定表的列标题的输出?我正在通过GBQ将多个文件上传到我们的服务器中,虽然它会自动检测标头,但我想以行或逗号分隔的单元格列出标头。
谢谢
答案 0 :(得分:1)
我假设您的文件为CSV格式,所以表的架构中没有重复的字段。考虑到这一点-以下是适用于BigQuery Standard SQL的查询,只需要完全限定的表名
<input type="file" id="datafile">
如果要应用于某些实际表,如下面的示例
#standardSQL
SELECT
REGEXP_EXTRACT_ALL(TO_JSON_STRING(t), r'"(.+?)"') cols_as_array,
ARRAY_TO_STRING(REGEXP_EXTRACT_ALL(TO_JSON_STRING(t), r'"(.+?)"'), ',') cols_as_string
FROM (SELECT 1) LEFT JOIN
(SELECT * FROM `project.dataset.table` WHERE FALSE) t
ON TRUE
结果将是
#standardSQL
SELECT
REGEXP_EXTRACT_ALL(TO_JSON_STRING(t), r'"(.+?)"') cols_as_array,
ARRAY_TO_STRING(REGEXP_EXTRACT_ALL(TO_JSON_STRING(t), r'"(.+?)"'), ',') cols_as_string
FROM (SELECT 1) LEFT JOIN
(SELECT * FROM `bigquery-public-data.utility_us.us_states_area` WHERE FALSE) t
ON TRUE
您可以选择使用哪个版本:以数组形式列出或以逗号分隔的字符串形式列出
还请注意,以上查询完全不会产生任何费用!