Есть ли способ в Redshift извлечь все URL-адреса из блока текста, каждый в виде отдельной строки? - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь извлечь все URL определенного формата из блока текста, который может содержать 0, 1 или много URL.

Например, одна строка может иметь значение:

'некоторый текст blahblahblah.com больше текста secondwebsite.com больше теста'

И яхотел бы, чтобы в моем выводе были представлены две строки:

'blahblahblah.com'

'secondwebsite.com'

Я могу использовать REGEXP_SUBSTR и SPLIT_PART, чтобы получить только первое .com вхождение, но в идеале я бы мог извлечь все вхождения отдельно.Есть ли способ сделать это?

Ответы [ 2 ]

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

Возвращать несколько выходных строк из одной входной строки в SQL непросто.

Вам потребуется перекрестное соединение с числовой таблицей (например, таблицей, содержащей строки, содержащие 1, 2, 3..., и затем использоватьэто число для ссылки на отдельную часть строки ввода.

Итог: Возможно, но это грязно. Попробуйте найти альтернативный способ достижения этого.

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

Если вы хотите создать отдельные строки из поля с несколькими URL-адресами, это обычно неосуществимо в SQL, я предлагаю вам использовать для этого инструмент ETL или некоторый язык сценариев, такой как python.

...