Google Big Query SQL для извлечения числительного c ID из строки - PullRequest
0 голосов
/ 19 апреля 2020

Как мне написать SQL Запрос в Google Big Query для извлечения нумерации c ID из строки, подобной этой:

Пример 1: Значение столбца: "http://www.google.com/abc/eeq/entity/32132 "

Требуемое извлечение: 32132

Пример 2: Значение столбца:" http://www.google.com/abc/eeq/entity/32132/ABC/2138 "

Требуемое извлечение: 32132

Пример 3: Значение столбца: "http://www.google.com/abc/eeq/entity/32132http: // www.google.com/abc/eeq/entity/32132"

Требуемое извлечение : 32132

Ответы [ 2 ]

1 голос
/ 19 апреля 2020

Ниже приведен пример для BigQuery Standard SQL

#standardSQL
WITH `project.dataset.table` AS (
  SELECT "http://www.google.com/abc/eeq/entity/32132" url UNION ALL
  SELECT "http://www.google.com/abc/eeq/entity/32132/ABC/2138" UNION ALL
  SELECT "http://www.google.com/abc/eeq/entity/32132http://www.google.com/abc/eeq/entity/32132" 
)
SELECT url, REGEXP_EXTRACT(url, r'\d+') extracted_id 
FROM `project.dataset.table`   

с выводом

Row url                                                                             extracted_id     
1   http://www.google.com/abc/eeq/entity/32132                                          32132    
2   http://www.google.com/abc/eeq/entity/32132/ABC/2138                                 32132    
3   http://www.google.com/abc/eeq/entity/32132http://www.google.com/abc/eeq/entity/32132    32132    
1 голос
/ 19 апреля 2020

Вы можете использовать regexp_extract(). Чтобы получить первую серию цифр в строке:

select regexp_extract(col, '[0-9]+')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...