Postgresql,在多个':'字符后获取字符串

时间:2017-04-06 09:40:46

标签: postgresql

我有以下列的条目

01:02:02:02
02:01:100:300
128:02:12:02

input

我需要一种方法来选择我想要显示的部分,如

01:02:02
02:01:100
128:02:12

output

01:02
02:01
128:02

我在类似的问题中尝试过建议的解决方案但没有成功,如

select substring(column_name, '[^:]*$') from table_name;

这怎么可行?

2 个答案:

答案 0 :(得分:2)

要获得前三个部分,您可以使用

public string GetRuntimeVersion()
{
 #if NET451
    return "net451";
 #elseif netcoreapp11
    return "netcoreapp11"; 
 #elseif netstandard14
    return "netcoreapp14";
 #endif
...
}

对于前两部分,省略SELECT substring(column_name FROM '^(([^:]*:){2}[^:]*)') FROM table_name; 。对于前四个部分,请将其设为{2}

答案 1 :(得分:0)

尝试split_part(您可以在其中指定所需的事件),例如:

t=# with s as (select '128:02:12:02'::text m) select split_part(m,':',1),split_part(m,':',2) from s;
 split_part | split_part
------------+------------
 128        | 02
(1 row)