PostgreSQL中split_part()相关查询

des4xlb0  于 2023-06-22  发布在  PostgreSQL
关注(0)|答案(2)|浏览(108)

我有一个包含first_name、last_name和name的表。姓名由全名组成,例如“Joe Bloggs”。我想用从name列派生的first_name和last_name更新表中的每一行,但我找不到update与子查询的正确组合来使其工作。
我试过使用:

update users a set a.first_name = subquery.first_name_new
from (select username, split_part(name, ' ',1) as first_name_new from users) as subquery
where a.username = subquery.username

我明白为什么这不起作用,但我就是找不到正确的组合。

lmyy7pcs

lmyy7pcs1#

您可以按以下方式执行此操作:

update users
set first_name = split_part(name, ' ',1),
     last_name = split_part(name, ' ',-1)

Demo here

gwbalxhn

gwbalxhn2#

update users
set first_name = split_part(name, ' ', 1),
     last_name = split_part(name, ' ', -1)

相关问题