我想从包含短信文本的列中提取一个人的名字。这些文本通常以“亲爱的”一词开头。例如。亲爱的米歇尔湾,您的电影票...
在mysql上,我使用了SUBSTRING_INDEX(SUBSTRING_INDEX(sms_text, " ", 2)," ", -1)
,但是现在我必须在BIgQuery上做同样的事情,而我找不到类似的功能。
样本数据:
Sms_text
亲爱的乔丹(Micheal Jordan),您的比赛门票已经寄给您。
尊敬的维拉特·科利(Virat Kohli),您的航班将在25分钟内起飞。
所需的输出:
米歇尔
Virat
有人可以帮我吗?
答案 0 :(得分:-1)
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