如何在BigQuery中使用REGEXP_EXTRACT提取数字值?

问题描述 投票:0回答:1

我正在尝试仅从BigQuery的特定列中提取数字。有关字段具有以下格式:value =“ Livraison_21J | Relais_19J”或“ RELAIS_15 DAY”我正在尝试为关键字“ Relais”前面的每个值提取天数。天数从1到100。

我用这个来做:

SELECT CAST(REGEXP_EXTRACT(delivery, r"RELAIS_([0-9]+J)") as string) as relayDay
FROM TABLE

我希望能够仅提取天数,而不考虑数字后面的字符串,无论是“ J​​”还是“ DAY”。

样本数据:

RETRAIT_2H|LIVRAISON_5J|RELAIS_5J    |     5J

LIVRAISON_21J|RELAIS_19J             |     19J

LIVRAISON_21J|RELAIS_19J             |     19J

RETRAIT_2H|LIVRAISON_3J|RELAIS_3J    |     3J
sql regex google-bigquery extract
1个回答
0
投票

您可以使用

REGEXP_EXTRACT(delivery, r"(?:.*\D)?(\d+)\s*(?:J|DAY)")

请参见regex demo

© www.soinside.com 2019 - 2024. All rights reserved.