如何拆分字符串并选择第n个部分

时间:2017-07-19 22:52:47

标签: string postgresql substring

我想使用冒号作为分隔符拆分字符串,然后选择第2和第3部分。

表:

|asdsc:dcdes:dcd|
|dcfd:drfe:regf |

预期产出:

|dcdes|
|drfe|

以及第三栏:

|dcd |
|regf|

2 个答案:

答案 0 :(得分:3)

使用split_part()

with my_table(str) as (
    values 
    ('asdsc:dcdes:dcd'),
    ('dcfd:drfe:regf')
)

select 
    str, 
    split_part(str, ':', 2) as part_no_2, 
    split_part(str, ':', 3) as part_no_3
from my_table

       str       | part_no_2 | part_no_3 
-----------------+-----------+-----------
 asdsc:dcdes:dcd | dcdes     | dcd
 dcfd:drfe:regf  | drfe      | regf
(2 rows)    

答案 1 :(得分:1)

您可以使用string_to_array将字符串转换为数组,使用:作为分隔符,以获取分隔符之间的每个元素,然后指定数组的索引以检索值。在这里你要先省略,但要取第二和第三。

代码:

select strarr[2], strarr[3]
from (
select string_to_array(string_col, ':') as strarr
from yourtable
  ) t