Как удалить все после ‘,’ в столбце в 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
  

Ответ №1:

Используйте 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