我有一个用例,我需要用多个分隔符分割字符串。
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 | 哎呀 | 哎呀 |
您可以将
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