如何从BigQuery中的字符串中仅删除字母?

时间:2018-07-11 20:51:48

标签: sql google-bigquery

所以我现在正在使用BigQuery SQL,试图弄清楚如何删除字母但保留数字。例如:

XXXX123456
AAAA123456789
XYZR12345678
ABCD1234567
1111
2222

所有数字前面都有相同数量的字母,而常规数字没有字母。我希望最终结果看起来像这样:

123456
123456789
12345678
1234567
1111
2222

我尝试使用PATINDEX,但BigQuery不支持该功能。我也尝试过使用LEFT,但是该函数将删除任何值,并且我不想删除仅字母值的任何数字值。任何帮助将不胜感激!

-Maykid

2 个答案:

答案 0 :(得分:2)

您可以使用regexp_replace()

select regexp_replace(str, '[^0-9]', '')

答案 1 :(得分:0)

以下示例适用于BigQuery标准SQL

   
#standardSQL
WITH `project.dataset.table` AS (
  SELECT 'XXXX123456' str UNION ALL
  SELECT 'AAAA123456789' UNION ALL
  SELECT 'XYZR12345678' UNION ALL
  SELECT 'ABCD1234567' UNION ALL
  SELECT '1111' UNION ALL
  SELECT '2222' 
)
SELECT str, REGEXP_REPLACE(str, r'[a-zA-Z]', '') str_adjusted
FROM `project.dataset.table`