Я предполагаю здесь - но обычно эта конструкция используется для так называемой декомпозиции строк
Так, в BigQuery вы можете использовать SPLIT (значение) или REGEXP_EXTRACT_ALL (значение, r '[^,] +')для этого, как в следующих примерах
#standardSQL
WITH `project.dataset.table` AS (
SELECT 1 id, '1,2,3,4,5,6,7' AS value UNION ALL
SELECT 2, 'a,b,c,d'
)
SELECT id, SPLIT(value) value
FROM `project.dataset.table`
или
#standardSQL
WITH `project.dataset.table` AS (
SELECT 1 id, '1,2,3,4,5,6,7' AS value UNION ALL
SELECT 2, 'a,b,c,d'
)
SELECT id, REGEXP_EXTRACT_ALL(value, r'[^,]+') value
FROM `project.dataset.table`
оба приведенных выше запроса вернут
Row id value
1 1 1
2
3
4
5
6
7
2 2 a
b
c
d
Здесь, как вы можете видеть, - значение в каждой строкеразбивается на массив элементов, но все еще в одной строке
Чтобы сгладить результат, вы можете дополнительно использовать UNNEST (), как в следующих примерах
#standardSQL
WITH `project.dataset.table` AS (
SELECT 1 id, '1,2,3,4,5,6,7' AS value UNION ALL
SELECT 2, 'a,b,c,d'
)
SELECT id, value
FROM `project.dataset.table`,
UNNEST(SPLIT(value)) value
или
#standardSQL
WITH `project.dataset.table` AS (
SELECT 1 id, '1,2,3,4,5,6,7' AS value UNION ALL
SELECT 2, 'a,b,c,d'
)
SELECT id, value
FROM `project.dataset.table`,
UNNEST(REGEXP_EXTRACT_ALL(value, r'[^,]+')) value
оба возвращают результат ниже (со всеми извлеченными элементами в отдельной строке)
Row id value
1 1 1
2 1 2
3 1 3
4 1 4
5 1 5
6 1 6
7 1 7
8 2 a
9 2 b
10 2 c
11 2 d