使用 SQL 提取 space 之前的第一个单词

Extract the first word before a space using SQL

假设我的 users table 中有一个名为 name:

的专栏
name
----
Brian
Jill Johnson
Sarah
Steven Smith

我想编写一个 PostgreSQL 查询来只获取名字。这是我目前所拥有的:

select substr(name, 0, position(' ' IN name) | length(name) + 1) as first_name from users;
name
----
Brian
Jill
Sarah
Steven

这似乎可行,但我觉得还有更简单的方法。

虽然我没有遵循逻辑,但您的代码看起来像 Postgres。如果是这样,请使用 split_part():

select split_part(name, ' ', 1)
from users;