小编典典

有扩展表的SQL函数吗?

sql

我隐约记得有一个函数可以做到这一点,但我想我可能会发疯。

假设我有一个数据表,将其称为table1。它具有三列:column1,column2,column3。查询

 SELECT * FROM table1

返回表1中的所有行/列。是否没有某种类型的EXPAND函数可以让我重复该结果?例如,如果我想将SELECT * FROM
table1查询中的所有内容重复三次,则可以执行EXPAND(3)之类的操作?


阅读 146

收藏
2021-04-14

共1个答案

小编典典

在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

这将创建一个包含三个元素的数组,并将其取消嵌套到行中。

在这两种情况下,您可以包括nSELECT区分副本。

2021-04-14