Biquery, как разбить поле на несколько столбцов с максимальным размером - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть этот запрос

SELECT
  * EXCEPT( county_geom ),
  CASE
    WHEN CHAR_LENGTH(ST_ASTEXT(county_geom)) <32766 THEN county_geom
  ELSE
  NULL
END
  AS county_geom
FROM
  `bigquery-public-data.utility_us.us_county_area`

как разделить поле "county_geom" на несколько новых столбцов с максимальным размером 32766?

edit: Мой вариант использования: я делаю При анализе в PowerBI существует ограничение в PowerBI: вы можете импортировать только столбец с максимальной длиной строки 32766, но позже я могу объединить эти столбцы, чтобы получить исходное поле.

1 Ответ

0 голосов
/ 02 апреля 2020

Попробуйте ниже (для BigQuery Standard SQL)

SELECT * EXCEPT( county_geom ),
  REGEXP_EXTRACT_ALL(ST_ASTEXT(county_geom), r'.{1000}') county_geom_arr
FROM `bigquery-public-data.utility_us.us_county_area`

Выше разбивает исходное значение на элементы размером 1000 - так, тогда - вы можете присоединить элементы массива обратно к исходному значению

Если размер близок к 32К - используйте нижеприведенную опцию

SELECT * EXCEPT( county_geom ),
  REGEXP_EXTRACT_ALL(ST_ASTEXT(county_geom), r'' || REPEAT('.', 32) || '{1000}') county_geom_arr
FROM `bigquery-public-data.utility_us.us_county_area`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...