return 使用 googleSQL 的字符串中只有 1-10000 个数字
return only 1-10000 number from a string using googleSQL
场景如下
Table A,列 Elem1
Elem1
John1235
kkajdak587
klajdsfds5
sjdfsj35
sdkfjsdj57
skjlfjd1
sdjflsj34
lfkjgk108
ksdjlkdjfk288
ksjsfsj1688
我只想从 Column Elem 1 的字符串值中提取数字。
数字是从 1 到 10000。
我该怎么做?
BigQuery 支持 REGEXP_REPLACE 替换任何 不是 [0-9] 的内容;这将为您提取所有数字。
SELECT
Elem1,
REGEXP_REPLACE(Elem1, "[^0-9]", "") as numbersOnly
FROM myTable
如果您想随后将其过滤为 1-10000 之间的值,则需要将其放入 WHERE 子句中。
SELECT
Elem1,
cast(REGEXP_REPLACE(Elem1, "[^0-9]", "") as int64) as numbersOnly
FROM myBaseTable
WHERE cast(REGEXP_REPLACE(Elem1, "[^0-9]", "") as int64) BETWEEN 1 and 10000
场景如下
Table A,列 Elem1
Elem1
John1235
kkajdak587
klajdsfds5
sjdfsj35
sdkfjsdj57
skjlfjd1
sdjflsj34
lfkjgk108
ksdjlkdjfk288
ksjsfsj1688
我只想从 Column Elem 1 的字符串值中提取数字。 数字是从 1 到 10000。
我该怎么做?
BigQuery 支持 REGEXP_REPLACE 替换任何 不是 [0-9] 的内容;这将为您提取所有数字。
SELECT
Elem1,
REGEXP_REPLACE(Elem1, "[^0-9]", "") as numbersOnly
FROM myTable
如果您想随后将其过滤为 1-10000 之间的值,则需要将其放入 WHERE 子句中。
SELECT
Elem1,
cast(REGEXP_REPLACE(Elem1, "[^0-9]", "") as int64) as numbersOnly
FROM myBaseTable
WHERE cast(REGEXP_REPLACE(Elem1, "[^0-9]", "") as int64) BETWEEN 1 and 10000