我依稀记得有一个函数可以做到这一点,但我想我可能会发疯。
假设我有一个数据表,称之为 table1。它有三列:column1、column2、column3。查询
SELECT * FROM table1
返回 table1 中的所有行/列。是否没有某种类型的 EXPAND 函数可以让我复制该结果?例如,如果我想将 SELECT * FROM table1 查询中的所有内容复制三次,我可以执行类似 EXPAND(3) 的操作?
在 BigQuery 中,我会推荐一个CROSS JOIN
:
SELECT t1.*
FROM table1 CROSS JOIN
(SELECT 1 as n UNION ALL SELECT 2 UNION ALL SELECT 3) n;
对于大量副本来说,这可能会很麻烦,但您可以通过生成数字来简化:
SELECT t1.*
FROM table1 CROSS JOIN
UNNEST(GENERATE_ARRAY(1, 3)) n
这将创建一个包含三个元素的数组并将其取消嵌套到行中。
在这两种情况下,您都可以包括n
in the SELECT
来区分副本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)