我有一个long_name列。我需要为这个专栏取名。短名称由" _"之后的第一个字符组成。长名。
例如: long_name:' _Michael_Smith'应该导致MS'简称 long_name:' _Michael_John_Smith'应该导致MJS' SHORT_NAME
我可以使用以下第一个角色: substring(long_name from position(' _' in long_name)+1 for for 1)as short_name。
如何在查询中获取其余字符?
答案 0 :(得分:1)
with example(long_name) as (
values
('_Michael_Smith'),
('_Michael_John_Smith')
)
select
long_name,
regexp_replace(long_name, '_(.)[^_]+', '\1', 'g') short_name
from example;
long_name | short_name
---------------------+------------
_Michael_Smith | MS
_Michael_John_Smith | MJS
(2 rows)