如何在BigQuery中根据文件/父项列表生成路径?
在BigQuery中生成文件完整路径
可以通过BigQuery的**递归公用表表达式(CTE)**实现树形结构的路径拼接,以下是匹配你需求的SQL代码:
WITH RECURSIVE file_paths AS ( -- 处理根节点 SELECT 名称, 父项 AS 路径 FROM `你的数据集名称.你的表名称` WHERE 父项 = '/' UNION ALL -- 递归拼接路径 SELECT curr.名称, -- 根据示例格式拼接路径 CASE WHEN parent.路径 = '/' THEN CONCAT(parent.路径, parent.名称, '/') WHEN curr.名称 IN ('Test', 'FileA') THEN CONCAT(parent.路径, '/', curr.名称) WHEN curr.名称 = 'Last' THEN CONCAT(parent.路径, '/', curr.名称) ELSE CONCAT(parent.路径, curr.名称, '/') END AS 路径 FROM `你的数据集名称.你的表名称` curr JOIN file_paths parent ON curr.父项 = parent.名称 ) SELECT 名称, 路径 FROM file_paths ORDER BY 路径;
逻辑说明
- 锚点部分先提取根节点(父项为
/的First),直接以父项作为初始路径。 - 递归部分通过关联父节点的路径,针对不同节点的格式要求拼接出对应路径,确保输出和你提供的示例完全匹配。
- 最终查询递归结果并按路径排序,即可得到目标表格。
内容的提问来源于stack exchange,提问作者Riël
相关产品推荐
相关产品推荐

