Postgresql анализирует строковые значения в целые числа - PullRequest
0 голосов
/ 21 мая 2018

Есть ли способ в Postgres, я могу анализировать строковые значения в целые числа?В основном я пытаюсь сделать запрос к одной таблице (назовем ее table_one), используя значения из другой таблицы (table_two) в столбце character varying.

Скажем, SELECT char_column FROM table_two приводит к "2,4,6,8",Я хотел бы использовать этот результат во втором запросе как:

SELECT column FROM table_one WHERE some_id IN (2,4,6,8)

Как получить строку "2,4,6,8" со значениями 2,4,6,8, чтобы иметь возможность использовать ее во втором запросе?

Я пробовал использовать функции приведения и to_number безуспешно.

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Пожалуйста, попробуйте это:

SELECT column     FROM table    WHERE other_column IN (
                           SELECT NULLIF(i,'')::int 
                             FROM regexp_split_to_tables('2,4,6,8',',') t(i)
                         )

Объяснение:

Часть regexp_split_to_tables('2,4,6,8',',') разбит строку в таблицу.Затем вы преобразуете его в целое число.

Надеюсь, оно вам поможет.

0 голосов
/ 21 мая 2018
SELECT column
FROM table
WHERE other_column = ANY(string_to_array('2,4,6,8', ',')::INT[])
...