我想使用冒号作为分隔符拆分字符串,然后选择第2和第3部分。
表:
|asdsc:dcdes:dcd|
|dcfd:drfe:regf |
预期产出:
|dcdes|
|drfe|
以及第三栏:
|dcd |
|regf|
答案 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