如何将正则表达式拆分为表正则表达式拆分表

时间:2019-07-12 07:59:18

标签: postgresql

我有带组合字符串的表,我想将其拆分为第一部分。我有正则表达式拆分到表的查询结果。

现在我已与此分开:1:9,5:4,4:8,6:9,3:9,2:5,7:8,34:8,24:6 到此表:

campaign_skill
----------------
1:9
5:4
4:8
6:9
3:9
2:5
7:8
34:8
24:6

具有以下表达式:

select * 
from regexp_split_to_table((select user_skill from users where user_token = 'ded8ab43-efe2-4aea-894d-511ed3505261'), E'[\\s,]+') as campaign_skill

如何将实际结果分成这样的表:

campaign | skill
---------|------
1        | 9
5        | 4
4        | 8
6        | 9
3        | 9
2        | 5
7        | 8
34       | 8
24       | 6

1 个答案:

答案 0 :(得分:1)

您可以使用split_part()

select split_part(t.campaign_skill, ':', 1) as campaign,
       split_part(t.campaign_skill, ':', 2) as skill
from users u, 
     regexp_split_to_table(u.user_skill, E'[\\s,]+') as t(campaign_skill)
where u.user_token = 'ded8ab43-efe2-4aea-894d-511ed3505261';