Sql 使用现有字段和函数更新语句

Sql 使用现有字段和函数更新语句,sql,postgresql,sql-update,sql-function,Sql,Postgresql,Sql Update,Sql Function,我有一个带有名称字段的表,表中的名字和姓氏用空格分隔 以下是我正在处理的简单测试数据: DROP TABLE IF EXISTS students; CREATE TABLE students ( name text, major text, gpa float ); INSERT INTO students VALUES ('John Smith', 'CS', 3.7), ('Sara Li', 'History', 3.4), ('Mike Adams', NULL, 2.6); 我的目

我有一个带有名称字段的表,表中的名字和姓氏用空格分隔

以下是我正在处理的简单测试数据:

DROP TABLE IF EXISTS students;
CREATE TABLE students (
name text,
major text,
gpa float
);
INSERT INTO students
VALUES ('John Smith', 'CS', 3.7),
('Sara Li', 'History', 3.4),
('Mike Adams', NULL, 2.6);
我的目标是更新表,以便使用Postgresql中的split_part函数,使用update语句将名字和姓氏分别放入新字段fname和lname中,并用名称中的空格分隔

然而,我正在努力让其中一条语句运行起来

UPDATE students SET first_name = split_part(name, ' '); 
我很难让查询为表中的每一行执行此操作,而且我也不确定如何接近姓氏,因为我需要获取空格后面的姓氏

我玩过子查询,但仍然没有成功,请告诉我您是否可以帮助

试试看

UPDATE students SET first_name = split_part(name, ' ', 1);