我正在尝试将逗号分隔的字符串转换为整数数组 (integer[]) 以在Where 子句中使用。
我尝试过演员,::Int
这不起作用。感谢您的意见
Example
Table A | Table B
ID | Set_id
2 | 14,16,17
1 | 15,19,20
3 | 21
我的查询:
Select *
from Table a, table b
where a.id in b.set_id
如果要将字符串用于连接条件,则需要将字符串转换为正确的整数数组。
Select *
from Table a
join table b on a.id = any(string_to_array(b.set_id, ',')::int[]);
But a much更好的解决方案是正确规范化您的表(或at least将这些 ID 存储在整数数组中,而不是 varchar 列中)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)