postgresql - 如何删除 PostgreSQL 列中 ',' 之后的所有内容

标签 postgresql

我有一个表,其中有一列包含地址。 我想删除字符串中 , 之后的所有内容。 我如何在 PostgreSQL 中执行此操作?

我试过使用 REPLACE,但这只适用于特定的字符串,这是一个问题,因为列中的每一行都有不同的地址。

SELECT *
FROM address_book

r_name r_address

xxx    123 XYZ st., City, Zipcode
yyy    333 abc road, City, Zipcode
zzz    222 qwe blvd, City, Zipcode

我需要 r_address 列只返回:

123 XYZ st.
333 abc road
222 qwe blvs

最佳答案

使用 split_part 函数,如下所示:

SELECT r_name, split_part(r_address, ',', 1) AS street
FROM address_book

文档:https://www.postgresql.org/docs/current/functions-string.html

fiddle :http://sqlfiddle.com/#!17/51afe/1

关于postgresql - 如何删除 PostgreSQL 列中 ',' 之后的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55366052/

相关文章:

sql - 如何根据行创建日期在 PostgreSQL 中创建自定义序列?

mysql - 有什么方法可以获取每天最后插入的值

mysql - 如何使用表中不同数量的列来设计数据库

c# - PostgreSQL:如何在 PostgreSQL 数据库中只插入一个反斜杠

postgresql - Rosario SIS 无法连接到数据库服务器

python - 如何从单个查询中检查多个日期的冲突

postgresql - 为什么我在运行 top 时看到 postgres 进程,尽管它只在 Docker 内部运行?

regex - 正则表达式用于在一个字符串包含另一个字符串时查找两个字符串之一

PostgreSQL 在触发器函数中动态修改新记录中的字段

mysql - 从 JPA PESSIMISTIC 锁获取的数据库行的物理锁