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