Postgresql 将字符串值解析为整数

Postgresql parse string values to integers

在 Postgres 中有没有一种方法可以将字符串值解析为整数?基本上,我正在尝试使用 character varying 列中另一个 table (table_two) 的值来查询一个 table(我们称之为 table_one)。

假设 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 函数但没有成功。

SELECT column
FROM table
WHERE other_column = ANY(string_to_array('2,4,6,8', ',')::INT[])

请试试这个:

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',',')会将字符串拆分为table。然后你把它转换成整数。

希望对您有所帮助。