um1*_*123 4 string postgresql substring
我想使用冒号作为分隔符分割字符串并选择第二和第三部分。
桌子:
|asdsc:dcdes:dcd|
|dcfd:drfe:regf |
Run Code Online (Sandbox Code Playgroud)
预期输出:
|dcdes|
|drfe|
Run Code Online (Sandbox Code Playgroud)
还有第三列:
|dcd |
|regf|
Run Code Online (Sandbox Code Playgroud)
使用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)
Run Code Online (Sandbox Code Playgroud)
您可以使用作为string_to_array
分隔符将字符串转换为数组,:
以获取分隔符之间的每个元素,然后指定数组的索引以检索值。这里你想省略第一个,但保留第二个和第三个。
代码:
select strarr[2], strarr[3]
from (
select string_to_array(string_col, ':') as strarr
from yourtable
) t
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7043 次 |
最近记录: |