Извлечь строку чисел из переменной с помощью запроса - PullRequest
0 голосов
/ 21 мая 2019

У меня есть таблица в BigQuery с переменной со строками текста, подобной этой:

row  path
1    /998777/kkjs/lksjaflkjsdf/sdfñklñ{sdf
2   /ñljasdfkgbsdf/5854654/lsjflkjsdf/asdfasdfsdf
3    /11544/sdfsdf/asdfsdfasdfdsf/sssfdsfdsdf

Как я могу запросить эту таблицу, чтобы извлечь числа для переменной, чтобы я получил новую переменную с:

row  path2
1    998777
2    5854654
3    11544

Thx!

Ответы [ 2 ]

1 голос
/ 21 мая 2019

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

#standardSQL
WITH `project.dataset.table` AS (
  SELECT '/998777/kkjs/lksjaflkjsdf/sdfñklñ{sdf' path UNION ALL
  SELECT '/ñljasdfkgbsdf/5854654/lsjflkjsdf/asdfasdfsdf' UNION ALL
  SELECT '/11544/sdfsdf/asdfsdfasdfdsf/sssfdsfdsdf' 
)
SELECT path, REGEXP_EXTRACT(path, r'/(\d+)/') path2
FROM `project.dataset.table`

с результатом

Row path                                            path2    
1   /998777/kkjs/lksjaflkjsdf/sdfñklñ{sdf           998777   
2   /ñljasdfkgbsdf/5854654/lsjflkjsdf/asdfasdfsdf   5854654  
3   /11544/sdfsdf/asdfsdfasdfdsf/sssfdsfdsdf        11544    
0 голосов
/ 21 мая 2019

Вы можете использовать regexp_replace():

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