我隐约记得有一个函数可以做到这一点,但我想我可能会发疯。
假设我有一个数据表,将其称为table1。它具有三列:column1,column2,column3。查询
SELECT * FROM table1
返回表1中的所有行/列。是否没有某种类型的EXPAND函数可以让我重复该结果?例如,如果我想将SELECT * FROM table1查询中的所有内容重复三次,则可以执行EXPAND(3)之类的操作?
在BigQuery中,我建议使用CROSS JOIN:
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在SELECT区分副本。
n
SELECT