На лицо просматривается CSV структура с разделителями - табами (
chr(9) ), соответственно проще просто разбить структуру в массив функцией
string_to_array() по символу табуляции
chr(9) и потом просто взять из массива требуемые элементы.
Через
LATERAL JOIN присоединяем результат функции к основной таблице , получаем
SELECT arr[5] AS url, arr[8] AS user_agent
FROM some_table AS st
CROSS JOIN LATERAL STRING_TO_ARRAY(st.data, chr(9)) AS arr
см.
UNDERSTANDING LATERAL JOINS IN POSTGRESQL ,
Пример использования LATERAL JOIN в PostgreSQL и т.п.
Или "аналогичный" вариант с разбиением строки на подстроки по разделителю -
split_part()
SELECT
split_part(data, chr(9), 5),
split_part(data, chr(9), 8)
FROM some_table
Либо же через извлечение подстроки по шаблону
регулярного выражения
см.
Extracting substring matching POSIX regular expression
SELECT substring(data,'http[^\t]+') AS url, substring(data,'[^\t]+$') AS user_agent FROM some_table
см. пример на
dbfiddle