SQL regex_extract/split字段在特定单词之前和之后

9w11ddsr  于 2023-03-31  发布在  其他
关注(0)|答案(1)|浏览(105)

我正在使用Databricks SQL,并试图将字符串解析到单独的列中。
下面是一个对我有效的例子:

regexp_extract('100-200', '(\\d+)-(\\d+)', 1)
returns: 100

我的具体示例是拆分一个名为 match_name 的列(即底特律雄狮队在纽约喷气机队),这样我就可以将主客场球队分成各自独立的列(即AWAY =底特律雄狮队,HOME =纽约喷气机队)
下面是我在SQL查询中尝试对match_name列实现的一些代码,以尝试在单词“at”处进行拆分-目前这些代码都不起作用

split(match_name,'[at]', 1),
regexp_extract(match_name,'(\\d+)at(\\d+)', 1),

任何帮助都是感激的!

7xzttuei

7xzttuei1#

我在使用Databricks时也遇到过这种挫折,因为我认为split_part是一个有效的函数。无论如何,这里有一种使用regexp_extract的方法...

with my_table as (
select 'Team A at Team B' as game union all
select 'Atlanta at Dallas'
)
select game, 
 regexp_extract(game, "(.*) at (.*)", 1) as away_team, 
 regexp_extract(game, "(.*) at (.*)", 2) as home_team
from my_table

输出:
| 游戏|客场球队|主队|
| --------------|--------------|--------------|
| A队在B队|A组|B队|
| 亚特兰大对达拉斯|亚特兰大|达拉斯|

相关问题