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

May*_*kid 3 sql google-bigquery

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

XXXX123456
AAAA123456789
XYZR12345678
ABCD1234567
1111
2222
Run Code Online (Sandbox Code Playgroud)

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

123456
123456789
12345678
1234567
1111
2222
Run Code Online (Sandbox Code Playgroud)

我尝试使用 PATINDEX 但 BigQuery 不支持该功能。我也试过使用 LEFT 但该函数将摆脱任何值,我不想摆脱任何数字值只有字母值。任何帮助将非常感激!

-Maykid

Gor*_*off 6

您可以使用regexp_replace()

select regexp_replace(str, '[^0-9]', '')
Run Code Online (Sandbox Code Playgroud)


Mik*_*ant 5

以下示例适用于 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`
Run Code Online (Sandbox Code Playgroud)