我有这样的字符串值
'[123, 124]'
我可以使用以下命令修剪值
select trim('[123, 124]', '[]'); --returning '123, 124' as text
我想将上面的值传递为
select *
from mytable
where numeric_column in (select trim('[123, 124]', '[]'));
我能理解,numeric_column
是数字。但是内部查询将数据作为文本返回。我无法将内部查询转换为,numeric
因为它有一个逗号。如果我想将结果转换为'123', '124'
,我可以运行以下命令并获得预期结果:
select *
from mytable
where numeric_column::text in (
select func_to_change(select trim('[123, 124]', '[]'))
);
我怎样才能做到这一点?func_to_change
我需要写什么逻辑?
注意:我使用的是 Postgresql 9.1。
删除 后
[
,]
您可以使用string_to_array()
将列表转换为整数数组。这可以直接在where
子句中使用:简单地,
从
至
你可以使用
String_agg
函数