假设我们有两个表,一个表名为“table1”,另一个表名为“table2”,它们包含相同的架构。我们想要将这两个表中的所有行连接到一个数组中,我们可以使用UNION运算符和子查询来完成。以下是SQL查询:
SELECT ARRAY(SELECT * FROM table1 UNION ALL SELECT * FROM table2) AS combined_data;
在此查询中,我们使用UNION ALL运算符连接表1和表2的数据,并使用子查询将结果作为数组返回。
注意,我们使用Union All来避免去重并确保所有行都包括在结果中。如果您需要去重,请使用UNION运算符。
以下是完整的示例查询:
WITH table1 AS ( SELECT 1 AS id, 'Apple' AS fruit UNION ALL SELECT 2 AS id, 'Banana' AS fruit ), table2 AS ( SELECT 3 AS id, 'Orange' AS fruit ) SELECT ARRAY(SELECT * FROM table1 UNION ALL SELECT * FROM table2) AS combined_data;
结果如下:
+---------------------+ | combined_data | +---------------------+ | [[1, 'Apple'], | | [2, 'Banana'], | | [3, 'Orange']] | +---------------------+
因此,我们可以使用UNION作为数组的子查询,将多个表连接到一个数组中。