用多个分隔符sql分割

问题描述 投票:0回答:1

我有一个用例,我需要用多个分隔符分割字符串。

client_id
废话_废话
呜呜
select client_id ,split(client_id,'-')[0] col1` ,split(client_id,'-')[1] col2 from mytbl

退货

客户端_id col1 col2
呜呜 哎呀 哎呀

我一直在尝试各种排列来获得两个分隔符,但没有成功。

select client_id ,split(client_id,'-'||'_')[0] col1` ,split(client_id,'-'||'_')[1] col2 from mytbl

这个错误,但我想返回的是......

client_id col1 col2
巴拉巴拉 废话 废话
bleh_bleh 哎呀 哎呀
postgresql databricks
1个回答
2
投票

您可以将

regexp_split_to_array
与破折号或下划线分隔符正则表达式一起使用:

select 
    client_id,
    regexp_split_to_array(client_id, '[-_]')[0] col1, 
    regexp_split_to_array(client_id, '[-_]')[1] col2 
    from mytbl;

这是一个小提琴POC:https://www.db-fiddle.com/f/4jyoMCicNSZpjMt4jFYoz5/13028

© www.soinside.com 2019 - 2024. All rights reserved.