首页 > 解决方案 > BigQuery 中的 SUBSTRING_INDEX

问题描述

我想从包含短信文本的列中提取一个人的名字。文本通常以“亲爱的”一词开头。例如。亲爱的迈克尔·贝,你的电影票...

虽然在 mysql 上,我使用过 SUBSTRING_INDEX(SUBSTRING_INDEX(sms_text, " ", 2)," ", -1),但现在我必须在 BIgQuery 上做同样的事情,我找不到类似的功能。

样本数据:

短信文本

亲爱的,迈克尔乔丹,您的比赛门票已邮寄给您。

亲爱的 Virat Kohli,您的航班将在 25 分钟后起飞。

期望的输出:

迈克尔

维拉特

有人可以帮我解决这个问题吗?

标签: sqlgoogle-bigquery

解决方案


with t as (
select 'Dear, Micheal Jordan, your match tickets have been mailed to you.' as sms
union all
select 'Dear Virat Kohli, your flight will depart in 25 mins.' as sms
)
select split(sms,' ')[offset(1)] from t

这返回

Micheal

Virat

推荐阅读