SUBSTRING_INDEX in BigQuery



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

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

示例数据:

Sms_text

亲爱的,迈克尔·乔丹,你的比赛门票已经邮寄给你了。

亲爱的维拉特·科利,您的航班将在25分钟后起飞。

期望输出:

迈克尔

维拉特

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

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

最新更新