Próbuję wyodrębnić wszystkie adresy URL określonego formatu z bloku tekstu, który może zawierać 0, 1 lub wiele adresów URL.

Na przykład, jeden wiersz może mieć wartość:

'Jakiś tekst blahblahblah.com. Więcej tekstu. sectwebsite.com. Więcej testów "

I chciałbym, żeby reprezentował w moich mocy jako dwa rzędy:

"blahblahblah.com"

"sectwebsite.com"

Mogę użyć REGEXP_SUBSTR i SPLIT_PART, aby uzyskać pierwsze wystąpienie .com, ale idealnie będę w stanie wyodrębnić wszystkie zdarzenia oddzielnie. Czy istnieje sposób na to?

0
connie.wang 21 luty 2019, 00:48

2 odpowiedzi

Najlepsza odpowiedź

Wracając wiele wierszy wyjściowych z jednego wiersza wejściowego nie jest łatwe w SQL.

Musisz przejść do tabeli numerycznych (np. Tabela zawierająca wiersze zawierające 1, 2, 3..., a następnie użyj tego numeru, aby odwołuje oddzielną część wiersza wejściowego.

dolna linia: Jest to możliwe, ale jest brudny. Spróbuj znaleźć alternatywny sposób osiągnięcia tego.

0
John Rotenstein 20 luty 2019, 22:54

Jeśli chcesz utworzyć oddzielne wiersze z pola z wieloma adresami URL, zwykle nie jest to możliwe w SQL, sugeruję użycie narzędzia ETL lub niektórych języka skryptowego, takiego jak Python, aby to zrobić.

0
demircioglu 20 luty 2019, 21:56