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。然后你把它转换成整数。
希望对您有所帮助。
在 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。然后你把它转换成整数。
希望对您有所帮助。