BigQuery получить все значения в диапазоне - PullRequest
0 голосов
/ 02 марта 2020

У меня есть столбец, который может содержать диапазон, и я хочу получить все значения в этом диапазоне. Т.е.

У меня есть следующие записи

id | number
-------------
1  | 342-345
-------------
2  | 346    

И я хочу его в следующем формате:

id | number
-------------
1  | 342
   | 343
   | 344
   | 345
-------------
2  | 346   

Я использую Стандарт SQL.

1 Ответ

1 голос
/ 02 марта 2020

Вы можете использовать split(), чтобы разделить строку, а затем generate_array(), чтобы получить нужные значения:

select t.*,
       GENERATE_ARRAY(cast(split(numbers, '-')[ordinal(1)] as int64),
                      cast(COALESCE(split(numbers, '-')[SAFE_ORDINAL(2)], split(numbers, '-')[ordinal(1)]) as int64),
                      1)
from (select 1 as id, '342-345' as numbers UNION ALL
      SELECT 2, '346'
     ) t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...