У меня возникла проблема с переносом данных «реального мира» в мою схему. Это на самом деле «проект» для моего курса базы данных, и они дали нам таблицу с результатами поиска собак. В этой таблице есть столбец, в котором содержится имя собаки (которая сама состоит из имени актуала и имени селекционера) и информации о родной стране, реальной жизни и году рождения. Пример: «Lillycette [AU 2012]» или «Black Bear Lee [AU/AU 2013]» или «Lemon Ralph [IE/UK 1998]». мне удалось его выйти первое слово и сохранить его в правой колонке с split_part, как это:SELECT средняя часть строки, если она существует. Postgresql
INSERT INTO tblHund (rufname)
SELECT
split_part(name, ' ', 1) AS rufname,
FROM tblimport;
tblimport представляет собой таблицу, где я свалил данные из файла CSV. Это работает так, как должно. Доступ к второй части имени с этим невозможен, потому что иногда нет второй части, а иногда и там вторая часть состоит из двух слов.
И вот где як застрял прямо сейчас. Я пробовал с подстроки и регулярными выражениями:
INSERT INTO tblZwinger (Name)
SELECT
substring(vatertier from E'[^ ]*\\ (+)$')AS Name
FROM tblimport
WHERE substring(vatertier from E'[^ ]*\\ (+)$') != '';
Приведенный выше код выполняется без ошибок, но на самом деле ничего не делает, потому что ЗЕЬЕСТ просто дать пустые строки обратно.
Мне потребовалось больше 3 часов, чтобы понять некоторые из этих обычных выражений, но я все еще чувствую себя довольно глупо, когда смотрю на них.
Есть ли другой способ сделать это. Если так, просто дайте мне подсказку. Если нет, то что не так с моим выражением выше?
Благодарим за помощь.