首页 > 解决方案 > 使用 SQL 提取空格前的第一个单词

问题描述

假设我的users表中有一个名为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

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

标签: sqlpostgresqlsubstring

解决方案


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

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

推荐阅读