首页 新闻 会员 周边 捐助

oracle查询条件为一个数组时怎么办?

0
[待解决问题]

我想在一条sql中完成所有的事,主要是因为数据量太大的原因,能一次查询的就不多次查。

现在遇到了一个问题,是这样的:

SELECT a.id, a.name, a.address FROM A WHERE ...;
查询的结果中,address字段的格式为 34,35,36,37,38,39,40 这样的,现在我想关联一个B表,其中b.id为对应的
a.address中的的一个值。问题是,怎么进行而这间的关联?才能一次性的把所要的数据去出来呢?
王云十三的主页 王云十三 | 菜鸟二级 | 园豆:204
提问于:2016-12-13 18:38
< >
分享
所有回答(2)
0

不要写复杂sql.我不写sql不照样混的好好的.

where a.address in (34,35,36,37,38,39,40)

吴瑞祥 | 园豆:29449 (高人七级) | 2016-12-13 20:10

这个是我的address的字段,数据设计啥的懒的吐槽了,是直接从数据工程师那里取来的,没法改,这个样子的address貌似没法用IN吧。

支持(0) 反对(0) 王云十三 | 园豆:204 (菜鸟二级) | 2016-12-15 09:18

@卫道士: 这种东西你用函数吧.100%全表扫描的.没发自.

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2016-12-15 09:31

@吴瑞祥: 想了一下,这个就是一列转多行的问题,现在在想办法把他加到JOIN ON里去,不过感觉好麻烦的样子,如果没其他办法的话,也只能这样了。多次查询啥的我这里是行不通的,最好最好的办法还是一次性查询。不过还 ☆⌒(*^-゜)v THX!!

支持(0) 反对(0) 王云十三 | 园豆:204 (菜鸟二级) | 2016-12-15 09:37
0

要用子查询吧。

青语 | 园豆:1000 (小虾三级) | 2016-12-14 09:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册