Redshift разбивает несколько писем, которые находятся в одной строке / столбце - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть база данных в Redshift, в которой есть поле с электронными письмами.Некоторые строки в этом поле имеют несколько электронных писем, например, 1 строка может иметь j.smith@email.com и c.jones@email.com.Проблема в том, что он написан как j.smith @ email.comc.jones @ email.com.Мне нужно иметь возможность разделить 2 электронных письма (в этом сценарии между m и c).Redshift основан на PostgreSQL, но не поддерживает unnest или array-to.Я пробовал

split_part(email, position('.com' in email)) as "test",

и

rtrim(replace(email, '@email.com', '@email.com'))

У кого-нибудь есть лучший метод?

1 Ответ

0 голосов
/ 09 февраля 2019

в split_part, вы указываете разделитель и основанный на 1 индекс результирующего массива, а не позицию, на которую нужно разделить ... просто так:

select split_part('j.smith@email.comc.jones@email.com','.com',1)||'.com';
select split_part('j.smith@email.comc.jones@email.com','.com',2)||'.com';
...