首页 > 解决方案 > 如何在 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

标签: postgresql

解决方案


使用该split_part函数,如下所示:

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

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

小提琴:http ://sqlfiddle.com/#!17/51afe/1


推荐阅读