拆分字符串,并获取子字符串

问题描述 投票:0回答:1

假设我有一个名字:Marco Peter Hanson

从这个名字中,我只想显示缩写,就像这样:M.P.H

我该怎么做?我尝试使用

substr
split_part
,但似乎无法正确。

substr(comments, 1, 1)

会给我字母“M”,并且

split_part(comments, ' ', 3)

会给我“汉森”

我觉得我应该把 substr 和 split_part 一起工作?

这个名字也可以是 Marco Peter,这样应该给出 M.P,但也可以是其他几个名字,例如:Maro Peter Hanson Brad,这样应该给出 M.P.H.B.

所以我需要做类似的事情:

split_part(comments, ' ', comments.length)
而不是硬编码“评论”的长度

postgresql
1个回答
1
投票

像这样使用

string_agg

   SELECT string_agg(substr(word, 1, 1), '.') AS initials
    FROM unnest(string_to_array('Marco Peter Hanson', ' ')) AS word;
© www.soinside.com 2019 - 2024. All rights reserved.