2014-02-11 199 views
0

的阵列我有以下SQL:转换字符串数组为整数

SELECT * FROM (SELECT t.id, t.summary, null as worker, tt.worked from ticket t 
INNER JOIN (SELECT ticket, sum(seconds_worked)/3600.0 as worked FROM ticket_time GROUP BY ticket) tt ON tt.ticket=t.id 
UNION ALL 
SELECT ticket,null, tt.worker, sum(tt.seconds_worked)/3600.0 from ticket_time tt GROUP BY ticket,worker) as foo 
WHERE id in ('9755, 9759') ORDER BY id 

在最后一行每当SQL执行能够而且将会改变的ID字符串'9755, 9759'。 我能刺痛转换为一个这样的数组:

string_to_array('9755, 9759', ',') 

但是,有没有办法这个字符串数组转换成整数数组?

回答

1

结果数组只投给int[]

where id = ANY (string_to_array('9755, 9759', ',')::int[]) 
+0

谢谢!我知道psql并试图将其转换为:: int4来代替。 – konart

+0

或者首先使用'ARRAY'文字,例如'ANY(ARRAY [9755,9759])' –

+0

这就是问题所在 - 我在这里工作的系统的核心不能传递任何东西,除了一个字符串,所以我必须从中创建一个数组。 – konart