所以我现在正在使用BigQuery SQL,试图弄清楚如何删除字母但保留数字。例如:
XXXX123456
AAAA123456789
XYZR12345678
ABCD1234567
1111
2222
所有数字前面都有相同数量的字母,而常规数字没有字母。我希望最终结果看起来像这样:
123456
123456789
12345678
1234567
1111
2222
我尝试使用PATINDEX,但BigQuery不支持该功能。我也尝试过使用LEFT,但是该函数将删除任何值,并且我不想删除仅字母值的任何数字值。任何帮助将不胜感激!
-Maykid
答案 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`