以下是 BigQuery 标准 SQL
#standardSQL
SELECT id, rec.*
FROM `project.dataset.table`,
UNNEST(ARRAY(
SELECT AS STRUCT code, quantity, price
FROM UNNEST(code) code WITH OFFSET
JOIN UNNEST(quantity) quantity WITH OFFSET USING(OFFSET)
JOIN UNNEST(price) price WITH OFFSET USING(OFFSET)
)) rec
您可以使用示例虚拟数据进行测试,如下例所示
#standardSQL
WITH `project.dataset.table` AS (
SELECT 1 id, ['product1', 'product2', 'product3'] code, [10, 20, 30] quantity, [2.99, 1.99, 0.99] price UNION ALL
SELECT 2, ['product4', 'product5', 'product6'], [60, 50, 40], [3.99, 4.99, 5.99]
)
SELECT id, rec.*
FROM `project.dataset.table`,
UNNEST(ARRAY(
SELECT AS STRUCT code, quantity, price
FROM UNNEST(code) code WITH OFFSET
JOIN UNNEST(quantity) quantity WITH OFFSET USING(OFFSET)
JOIN UNNEST(price) price WITH OFFSET USING(OFFSET)
)) rec
有输出
Row id code quantity price
1 1 product1 10 2.99
2 1 product2 20 1.99
3 1 product3 30 0.99
4 2 product4 60 3.99
5 2 product5 50 4.99
6 2 product6 40 5.99