Проблема обрезать данные с одинарными кавычками в таблицу? - PullRequest
0 голосов
/ 02 мая 2020

У меня есть таблица, в которой одно из ее полей имеет следующий формат:

Таблица Foo

info
----------------------------------------------------------------------------------------------------
['email', 'phone', 'reviews', 'manual_offline', 'jumio', 'government_id']
['email', 'phone']
['email', 'phone', 'reviews', 'offline_government_id', 'selfie', 'government_id', 'identity_manual']
...

Чтобы отделить каждое значение от таблицы Foo в другую таблицу для нормализации модели, я хочу отделить каждую строку от массива в каждой строке в поле info и вставить ее в другую таблицу.

Чтобы разделить значения, я попытался выполнить это select но я выяснил, что одинарные кавычки (') в массиве вызывают некоторые проблемы, потому что я не могу использовать их в первом параметре trim, так как postgresql будет считать, что я разделяю строки:

select distinct (trim('['']' FROM REGEXP_SPLIT_TO_TABLE(info, ','))) from ImportH;

Несмотря на то, что я выполнил select и разделил значения, но некоторые из них содержат одну кавычку в начале.

пример вывода я получаю:

'phone facebook 'email ...

Как я могу сделать это правильно?

Ответы [ 2 ]

1 голос
/ 02 мая 2020

Ваш сплиттер действительно ', '. Так что попробуйте:

select distinct (trim('['']' FROM REGEXP_SPLIT_TO_TABLE(info, ''', ''')))
from ImportH;
1 голос
/ 02 мая 2020


,

Привет,

Вместо обрезки вы можете использовать замену, которая заменяет одинарную кавычку.

select replace(column_name, '''', '') from ImportH;

Но если Вы могли бы объяснить точный результат, можете помочь больше на этом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...