考虑一个包含完整人名的表格:
在Postgres中,将名称拆分为名字和姓氏的最简单(最易读)的方法是什么?
这是我想出来的方法,但似乎非常复杂。肯定有更简单的方法吧?
create table names (full_name varchar not null);
insert into names (full_name)
values ('Jane Marie Doe'), ('John Doe');
在Postgres中,将名称拆分为名字和姓氏的最简单(最易读)的方法是什么?
first_name | last_name
------------+-----------
Jane Marie | Doe
John | Doe
(2 rows)
这是我想出来的方法,但似乎非常复杂。肯定有更简单的方法吧?
select
array_to_string(ary[1:len - 1], ' ') as first_name,
ary[len] as last_name
from (
select ary, array_length(ary, 1) as len
from (
select regexp_split_to_array(full_name, E'\\s+') as ary
from names
) sub1
) sub2;