SQL:提取最后一个单词
Posted
技术标签:
【中文标题】SQL:提取最后一个单词【英文标题】:SQL: extract the last word 【发布时间】:2021-12-14 17:36:35 【问题描述】:我有一个如下所示的表格:
id | cars
1 | John's Honda
2 | Andrew's red lexus
3 | James has a bmw
我只需要获取显示实际“汽车”名称的“汽车”列的最后一个单词 我尝试了以下方法,但没有得到所需的输出
select substr(cars, -1)
from t
上面的代码只显示了该列的最后一个字符。后来,我尝试了以下方法:
select split(cars, ' ')[offset(1)]
from t
但是,我收到“数组索引 1 超出范围(溢出)”错误。谁能帮助如何使用 bigquery 实现这一点?
【问题讨论】:
【参考方案1】:考虑下面的简单方法
select *,
array_reverse(split(cars, ' '))[offset(0)] as brand
from your_table
如果应用于您问题中的样本数据 - 输出是
注意:确实有很多方法可以完成您的案例 - 所以另一种方法是 regexp_extract(cars, r'\b(\w+)$') as brand
【讨论】:
谢谢!成功了!以上是关于SQL:提取最后一个单词的主要内容,如果未能解决你的问题,请参考以下文章