日期:2014-05-17  浏览次数:20671 次

数据项包含问题,请高手指教,谢谢先!
现在有两条记录
name             age           sal           smallinfo           biginfo

blue             19             2300           01,03                   01,02,03
blue             20             2300           01,04                   01,02

我现在想找出biginfo里包含smallinfo的那条记录,
比如上面的第一条记录中,biginfo(01,02,03)包含smallinfo(01,03)就是满足条件的记录,第二条记录就不满足条件,我该怎么写这个sql语句呢,oracle里有没有类似的函数啊,请高手指教?非常感谢!

------解决方案--------------------
select * from tab
where instr(biginfo, smallinfo)> 0
------解决方案--------------------
如果值排列有顺序,如 "01,02,03 "那么可以将smallinfo中的 ", "替换成 ",% ",然后在作like操作,如biginfo like '% '|| '01,%03 '|| '% '.
如果没有顺序的话那么写个java方法了,传入smallinfo,biginfo,使用java作判断