sql - BigQuery 中的 SUBSTRING_INDEX
问题描述
我想从包含短信文本的列中提取一个人的名字。文本通常以“亲爱的”一词开头。例如。亲爱的迈克尔·贝,你的电影票...
虽然在 mysql 上,我使用过 SUBSTRING_INDEX(SUBSTRING_INDEX(sms_text, " ", 2)," ", -1)
,但现在我必须在 BIgQuery 上做同样的事情,我找不到类似的功能。
样本数据:
短信文本
亲爱的,迈克尔乔丹,您的比赛门票已邮寄给您。
亲爱的 Virat Kohli,您的航班将在 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
推荐阅读
- php - 配置 PHP 页面上的表单重定向
- javascript - 如何使用 PDFMake 在 ui-grid pdf 导出中添加自定义标题?
- html - 将宽度:100% 高度:100 设置为公共元素时,打印预览性能非常慢
- sql-server - 更改存储过程参数列表
- xamarin.forms - Xamarin Android 蓝牙扫描设备未找到特定设备
- html - 引导背景图像不会滚动
- swift - 如何填充文本颜色并设置自动单元格大小,如 macOS 的缩放聊天
- openmdao - 在 OpenMDAO 中将组件连接到 Auto-IVC 的问题
- postgresql - VS 代码在正确的 sql 中显示不正确的语法错误
- python - PYTHON : ': [Errno 2] 没有这样的文件或目录py